DotNetNuke jQuery 选项卡不工作
DotNetNuke jQuery Tabs Not Working
JQuery 选项卡和面板在 DNN 版本 08.00.03 中不起作用。它仅在用户登录时有效。一旦用户注销,所有面板和选项卡将停止工作。
我在 HTML 模块中有以下代码:
<div class="dnnForm" id="panels-demo">
<div class="dnnFormExpandContent"><a href="">Expand All</a></div>
<h2 id="ChristopherColumbus" class="dnnFormSectionHead"><a href="#">Christopher Columbus</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/498px-Christopher_Columbus.PNG") %>" alt="Christopher Columbus" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Christopher Columbus</h1>
<p>Italian navigator, colonizer and explorer whose voyages led to general European awareness of the American continents.</p>
</div>
</fieldset>
<h2 id="IsaacNewton" class="dnnFormSectionHead"><a href="#">Isaac Newton</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>" alt="Isaac Newton" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Isaac Newton</h1>
<p>English physicist, mathematician, astronomer, natural philosopher, alchemist, and theologian. His law of universal gravitation and three laws of motion laid the groundwork for classical mechanics.</p>
</div>
</fieldset>
<h2 id="JohannesGutenberg" class="dnnFormSectionHead"><a href="#">Johannes Gutenberg</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/Gutenberg.jpg") %>" alt="Johannes Gutenberg" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Johannes Gutenberg</h1>
<p>German printer who invented the mechanical printing press.</p>
</div>
</fieldset>
</div>
以下代码放在模块头中:
<script type="text/javascript">
jQuery(function ($) {
var setupModule = function () {
$('#panels-demo').dnnPanels();
$('#panels-demo .dnnFormExpandContent a').dnnExpandAll({
targetArea: '#panels-demo'
});
};
setupModule();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
// note that this will fire when _any_ UpdatePanel is triggered,
// which may or may not cause an issue
setupModule();
});
});
</script>
一些 Whosebug 问题和其他形式提到添加这行代码:
jQuery.RequestDnnPluginsRegistration();
不确定添加它的方式和位置,以及它是否能解决问题。
上面的代码取自这个网站:
http://uxguide.dotnetnuke.com/UIPatterns/Panels.html
也许由于某种原因,您的资源加载顺序不正确。如果将 JavaScript 包装在 $(document).ready({
您的代码将无法像现在这样工作,您使用的示例应该位于来自自定义模块或 skins/container 文件的 .aspx 或 .ascx 代码页上。代码 <%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>
不能在 HTML 模块中使用。它是服务器端代码。
如果您查看此 http://www.dnnsoftware.com/wiki/reusable-dotnetnuke-jquery-plugins,您需要在代码后面添加 DotNetNuke.Framework.jQuery.RequestDnnPluginsRegistration();
和 ClientAPI.RegisterClientReference(this.Page, ClientAPI.ClientNamespaceReferences.dnn);
选项卡才能正常工作。
这些可能在用户登录时在某处使用,所以我的选项卡功能正常。如果您构建自己的模块,则可以在其代码中添加这些行。
然而,经过一些测试后,我发现您可以将这些行添加到 HTML 并且它会起作用。
<script src="/Resources/Shared/Scripts/dnn.jquery.js?cdv=41" type="text/javascript"></script>
<script src="/js/dnn.js?cdv=41" type="text/javascript"></script>
JQuery 选项卡和面板在 DNN 版本 08.00.03 中不起作用。它仅在用户登录时有效。一旦用户注销,所有面板和选项卡将停止工作。
我在 HTML 模块中有以下代码:
<div class="dnnForm" id="panels-demo">
<div class="dnnFormExpandContent"><a href="">Expand All</a></div>
<h2 id="ChristopherColumbus" class="dnnFormSectionHead"><a href="#">Christopher Columbus</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/498px-Christopher_Columbus.PNG") %>" alt="Christopher Columbus" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Christopher Columbus</h1>
<p>Italian navigator, colonizer and explorer whose voyages led to general European awareness of the American continents.</p>
</div>
</fieldset>
<h2 id="IsaacNewton" class="dnnFormSectionHead"><a href="#">Isaac Newton</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>" alt="Isaac Newton" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Isaac Newton</h1>
<p>English physicist, mathematician, astronomer, natural philosopher, alchemist, and theologian. His law of universal gravitation and three laws of motion laid the groundwork for classical mechanics.</p>
</div>
</fieldset>
<h2 id="JohannesGutenberg" class="dnnFormSectionHead"><a href="#">Johannes Gutenberg</a></h2>
<fieldset class="dnnClear">
<img src="<%=ResolveUrl("Images/Gutenberg.jpg") %>" alt="Johannes Gutenberg" width="32%" class="dnnLeft" />
<div class="dnnRight" style="width:62%;margin-left:2%">
<h1>Johannes Gutenberg</h1>
<p>German printer who invented the mechanical printing press.</p>
</div>
</fieldset>
</div>
以下代码放在模块头中:
<script type="text/javascript">
jQuery(function ($) {
var setupModule = function () {
$('#panels-demo').dnnPanels();
$('#panels-demo .dnnFormExpandContent a').dnnExpandAll({
targetArea: '#panels-demo'
});
};
setupModule();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
// note that this will fire when _any_ UpdatePanel is triggered,
// which may or may not cause an issue
setupModule();
});
});
</script>
一些 Whosebug 问题和其他形式提到添加这行代码:
jQuery.RequestDnnPluginsRegistration();
不确定添加它的方式和位置,以及它是否能解决问题。 上面的代码取自这个网站: http://uxguide.dotnetnuke.com/UIPatterns/Panels.html
也许由于某种原因,您的资源加载顺序不正确。如果将 JavaScript 包装在 $(document).ready({
您的代码将无法像现在这样工作,您使用的示例应该位于来自自定义模块或 skins/container 文件的 .aspx 或 .ascx 代码页上。代码 <%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>
不能在 HTML 模块中使用。它是服务器端代码。
如果您查看此 http://www.dnnsoftware.com/wiki/reusable-dotnetnuke-jquery-plugins,您需要在代码后面添加 DotNetNuke.Framework.jQuery.RequestDnnPluginsRegistration();
和 ClientAPI.RegisterClientReference(this.Page, ClientAPI.ClientNamespaceReferences.dnn);
选项卡才能正常工作。
这些可能在用户登录时在某处使用,所以我的选项卡功能正常。如果您构建自己的模块,则可以在其代码中添加这些行。
然而,经过一些测试后,我发现您可以将这些行添加到 HTML 并且它会起作用。
<script src="/Resources/Shared/Scripts/dnn.jquery.js?cdv=41" type="text/javascript"></script>
<script src="/js/dnn.js?cdv=41" type="text/javascript"></script>