我正在尝试在控件中使用jQuery插件。控件可以使用的页面通过UpdatePanel使用部分回发。我在控件的PreRender事件中包含了jQuery和插件,如下所示:
ScriptManager.RegisterClientScriptInclude(
this,
this.GetType(),
"jquery",
"/_infrastructure/javascript/jquery.js"));
ScriptManager.RegisterClientScriptInclude(
this,
this.GetType(),
"jquery.customPlugin",
"/_infrastructure/javascript/jquery.customPlugin.js");
customPlugin jQuery插件设置了一个名为“executeCustomPlugin”的新函数。稍后在控件的PreRender事件中,我在控件上的元素上使用插件:
ScriptManager.RegisterStartupScript(
this,
this.GetType(),
"customPlugin init script",
@"$(document).ready(function() {
$('#elementId').executeCustomPlugin();
});",
true);
然而,当它执行时,我收到JavaScript错误:
$('#elementId').executeCustomPlugin is not a function
似乎jQuery插件从未执行过,但我在jQuery.customPlugin.js文件中设置了window.alerts,它确实正在执行。
有没有办法解决这个问题?
答案 0 :(得分:0)
可能的解释是,在执行ScriptManager代码之前,DOM中不存在您的插件。
在将页面呈现给浏览器之后查看页面的来源,并确保在向脚本管理器注册的javascript之前呈现自定义插件的脚本标记。
答案 1 :(得分:0)
事实证明,我的问题是由于包含jQuery两次造成的。第一个jQuery实例正在应用插件,但第二个jQuery实例正在接收调用。