JQuery不能看到从AJAX调用变成可见的对象

JQuery can't see object that became visible from AJAX call

本文关键字:对象 调用 不能 AJAX JQuery      更新时间:2023-09-26

在这一点上,我不是AJAX和Javascript/JQuery的高手。我有一种情况,我知道问题是什么,但不知道如何解决它。我有一个JQuery自动完成工作很好。它位于一个占位符中,只有当单击linkButton时才显示在页面上。很简单。我发现,我的页面工作得更好,虽然如果我把隐藏/显示占位符在Asp。Net AJAX UpdatePanel(因此页面不会发回)。很简单……

但是现在,当我调用JQuery自动完成时,它不起作用。我知道为什么……这是因为当页面加载时,自动完成的文本框是不可见的,并且链接按钮的AJAX单击只刷新了该元素,而没有发布整个页面。当我去pageSource,我看到textBox甚至不在那里。当然,自动补全无法工作,因为它现在找不到元素的ID。

有什么我可以添加到这个JQuery代码,使它现在看到AJAX面板显示的可见文本框?提前感谢任何人可以提供的任何帮助。

<script type="text/javascript">
$(document).ready(function() {
$("#<%=txtCityStateZip.ClientID%>").autocomplete('SearchHandlerGRP_BY.ashx');
});      
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#<%=txtCityStateZip.ClientID%>").show('ErrorHandler.ashx');
});      
</script>

为了查看AJAX调用的结果,查找javaScript错误,或者查看HTML被jQuery操作后的状态,我更喜欢使用FireFox和Firebug插件。要做到这一点,只需确保FF已更新,然后转到Add-ons并搜索Firebug。将会有许多带有fire之类的附加组件,但您将只想要"Firebug"。我目前使用的Firefox 8.0版本是1.8.3。

一旦你安装了这个,你可以通过按F12键来切换Firebug窗口。我的Firebug窗口停靠在浏览器的底部,它在浏览器窗口中是可调整大小的。

在Firebug面板的主工具/菜单栏中,有两个关键特性可以告诉您更多正在发生的事情。您将对"元素检查"功能感兴趣,该功能允许您查看页面上任何元素的html(即使它已被脚本操作)。单击Firebug工具栏上从左边算起的第二个按钮(蓝色箭头位于蓝色框上),然后将鼠标移到页面上。与当前悬停在上面的元素相关的html将出现在firebug窗口中。单击一个元素来"锁定"到html的那一部分。如果您想检查不同的内容,请再次单击检查工具按钮。

您将能够使用的另一个工具是控制台窗口,该工具已在上面的评论中引用。这可以通过单击检查工具按钮右侧的"控制台"选项卡来访问。在它成为活动选项卡之后,请确保单击options箭头并验证控制台是否已启用。启用后,您可以重新加载页面,ajax请求和响应将在发生时出现在控制台窗口中。