jQuery 不工作
Posted
技术标签:
【中文标题】jQuery 不工作【英文标题】:JQuery not working 【发布时间】:2011-01-31 10:32:37 【问题描述】:我正在尝试在我的网页中实现 JQuery,但我无法成功实现它。
我有一个母版页
我为菜单栏添加了一个脚本,该脚本已经在使用由 Google 托管的 jquery
这是在母版页本身编码的
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
现在我想实现一个 Jquery 来将 css 可见性属性设置为 true 或 false。
进入我的同一母版页的content page
。
<script type="text/javascript">
$(document).ready(function()
$("#lnkAddMore").click(function()
alert();
);
);
</script>
这个 html 控件在我的UpdatePanel
下。
我不知道为什么它不起作用?
我在 UpdatePanel 下使用这个控件。
<input type="button" id="lnkAddMore" value="Add More" />
我试图在我的更新之外使用它 面板它运行成功但是 不在更新面板中
我认为将它与 UpdatePanel 一起使用会出现问题
这是我的页面来源
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<link href="../../Css/Domain.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function()
$("#lnkAddMore").click(function()alert();$('#h').hide(100););
$('#h').show(100);
);
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="divDomain" runat="server">
<asp:gridview/>
<div style="text-align:right;">
<input type="button" id="lnkAddMore" value="Add More" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
【问题讨论】:
ddmenu_open和ddmenu_timer函数的定义在哪里? @curtisk:它们的定义在同一个脚本标签内。我只是在这里删除它以使代码更具可读性。 JQuery 的那部分运行良好 您是否尝试将点击事件添加到由更新面板动态加载的元素? @ROMAN 不,我不会动态添加该元素 【参考方案1】:你真的嵌套了<script>
标签还是打错了?
<script type="text/javascript">
<script type="text/javascript">
如果这不是拼写错误,那么这可能就是问题所在。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
$('#ddmenu > li').bind('mouseover', ddmenu_open)
$('#ddmenu > li').bind('mouseout', ddmenu_timer)
);
$(document).bind('click', ddmenu_close); // do you really want to close on any click?
</script>
【讨论】:
我是这样用的 在您上面的代码中,您在另一个 【参考方案2】:我在 jQuery 和 UpdatePanels 中使用了两种方法。
第一个是这样的: jQuery $(document).ready and UpdatePanels?
我在 Rick Strahl 的博客 (http://www.west-wind.com/Weblog/posts/154797.aspx) 上找到的另一种方法是在后面的代码中执行类似的操作:
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "alertScript",
@" $(document).ready(function()
$("#lnkAddMore").click(function()
alert();
);
);", true);
查看另一个示例:Problem with ScriptManager.RegisterClientScriptBlock and jQuery in Internet Explorer 8
还可以查看 jQuery 的 live() 事件订阅者。
【讨论】:
【参考方案3】:检查按钮的 ID 是否实际上没有更改为类似
ctl00_ContentPlaceHolder1_lnkAddMore
因为它位于母版页的内容占位符中。
如果是这样,您必须调整您的 JQuery。
【讨论】:
@Lester 不,它的名字没有改变。我已将按钮作为 HTML 控件 与 UpdatePanel 一起使用时是否有其他方法可以调用 JQuery 这显示在源代码中。 ID 相同 【参考方案4】:当您在 UpdatePanel 下加载代码时,请尽量不要将其包装在 $(document).ready();
中。对于 AJAX 事件,不会在 document
上触发 Ready。
【讨论】:
我将页面代码编辑为以上是关于jQuery 不工作的主要内容,如果未能解决你的问题,请参考以下文章
jquery 在 iframe 内的 IE 中不工作 其他浏览器正常工作
jquery ajax 链接工作/不工作它随着时间的推移而工作