1

你能把 jQuery 代码放在 .ascx 页面中吗?

我有一个在 ASP.NET 项目中使用的用户控件。当我在 default.aspx 页面上选择某些内容时,会动态创建该控件的多个实例。我想用 jQuery 操作部分用户控件。但是,jQuery 似乎没有加载。

我在我的 MasterPage 中引用了 jQuery 库。我从我的 default.aspx 测试了以下代码并且它可以工作,但是当我在我的 ascx 页面中使用相同的代码时我没有得到任何响应:

<script type="text/javascript" charset="utf-8">
    if (typeof ($) != 'function') alert('This component requires jQuery.');
    else $(function () { alert('The DOM is ready for jQuery manipulation.'); });
</script>

有任何想法吗 ?

谢谢。

4

2 回答 2

0

if you've referenced jQuery in masterpage, then you can access it in .ascx.

can you put this inside $(document).ready(function(){ /* your code.. */ }); -in ascx- and check?

于 2013-06-05T13:51:59.497 回答
0

要在用户控件 .ascx 中包含和运行 JavaScript 或 JQuery 代码行,不应该<script>在 HTML 代码中插入标记。如果需要,仅使用它来插入对 JQuery 文件的引用。ASP.NET 页面事件(例如 Load 或 UpdatePanel 用户控件)不一定会触发客户端事件,例如在 .aspx 页面上完成加载时。为此,您应该使用 ScriptManager.RegisterClientScriptBlock。要成功使用您的示例,请在 .ASCX 控件的 Load 事件中设置此代码:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ActivateJsSample", 
@"<script type = 'text/javascript'>
if (typeof ($) != 'function') alert('This component requires jQuery.');
else $(function () { alert('The DOM is ready for jQuery manipulation.'); });
});
</script>", false);

这将与用户控件的 Load 事件同步并触发,并且每次都触发。

于 2013-07-01T04:58:45.503 回答