如何在JSN 5模块中正确包含JS库(jqueryUI,jquery插件)?

时间:2010-11-11 12:09:18

标签: javascript jquery-ui dotnetnuke dotnetnuke-module

我使用DotNetNuke.Framework.jQuery.RequestRegistration();将jquery包含到我的模块中,它的工作方式与预期的一样。

我通过页面设置/高级设置/页面标题标记包含在我的DNN门户中的其他脚本。 它们也会被加载,但它们不能按预期工作。

在我的情况下,我希望在我的一个dnn模块中有标签,并且我正在使用jqueryUI来执行此操作。如果我在DNN之外测试这个模块,它应该像它应该的那样工作,但是当安装到DNN时会出现问题。 我创建了标签但我无法切换它们。 Actualy我看到所有内容应该在同一页面的分隔标签中。

alt text

这是我来自module.ascx文件的Js代码。

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $("#<%= pnlTabs.ClientID %>").tabs();
    });
</script>

如何纠正这个? 我认为问题在于所有这些不同的JS库都变得混杂了。那么将另一个JS库包含到DNN模块中的正确方法是什么呢?


编辑: 我发现了这个问题。你能帮忙解决一下吗?

<li><a href="DesktopModules/OsControl/#dnn_ctr380_osControl_pnlProcesses">Processes</a></li>

<div id="dnn_ctr380_OsControl_pnlProcesses" style="text-align:left;"> 

问题是DNN将“DesktopModules / OsControl /”添加到“li”元素中的链接。如何防止这种或任何其他方式?


EDIT2:

<asp:BulletedList ID="BulletedList1" runat="server" BulletStyle="NotSet" DisplayMode="HyperLink">
    <asp:ListItem Value="#OsControl_pnlProcesses">Processes</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlServices">Services</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlEvents">Events</asp:ListItem>
</asp:BulletedList>

这是我创建链接的方式。

2 个答案:

答案 0 :(得分:1)

我首先建议通过this artilce

添加jQuery和jQuery UI引用的方式可能会导致问题,请确保在jQuery.ui.js之前添加jQuery.js。

如果您认为几乎所有页面都需要jQuery,您也可以将jQuery注册码移动到皮肤上。

最后一件事是添加console logging以查看firebug控制台中的日志消息,以便您可以快速跟踪脚本引用相关问题

答案 1 :(得分:-1)

按照以下步骤操作,你应该没问题:

  1. 以HOST身份登录,转到主机&gt;门户网站设置,展开jQuery设置节点,然后选中“使用托管的jQuery版本”
  2. 将所有其他js引用添加到Default.aspx文件