JQuery无法看到从AJAX调用中可见的对象

时间:2012-01-03 20:49:11

标签: javascript jquery asp.net-ajax

此时我对AJAX和Javascript / JQuery不是最好的。我有一种情况,我知道问题是什么,但不知道如何解决它。我有一个JQuery自动完成工作正常。它位于占位符中,仅在单击linkBut​​ton时在页面上显示为可见。很简单。我发现,如果我将占位符的隐藏/显示放在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>

1 个答案:

答案 0 :(得分:0)

为了查看AJAX调用的结果,了解javaScript错误,或者在jQuery操作后查看HTML的状态,我更喜欢使用FireFox和Firebug附加组件用于浏览器。要做到这一点,只需确保更新FF,然后转到Add-ons和Search for Firebug。会有一些带有 fire 的附加组件,但你只需要“Firebug”。我目前在我的8.0版Firefox中使用的版本是1.8.3。

安装完成后,可以按F12键切换Firebug窗口。我的Firebug窗口停靠在浏览器的底部,并且在浏览器窗口中可以调整大小。

Firebug窗格的主工具/菜单栏中提供了两个关键功能,可以告诉您有关正在发生的事情的更多信息。您将对“元素检查”功能感兴趣,该功能允许您查看页面上任何元素的html(即使在脚本操作之后)。单击Firebug栏左侧的第二个按钮(蓝色框上方的蓝色箭头),然后将鼠标悬停在页面上。与当前正在悬停的元素相关的html将出现在firebug窗口中。单击一个元素以“锁定”到html的该部分。如果您想检查不同的内容,请再次单击检查工具按钮。

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