【发布时间】:2010-07-13 01:23:29
【问题描述】:
我遇到了 jQuery 无法识别我页面上的元素并抛出错误说我尝试选择的元素为空的问题。
我们将我们的内容插入到客户端提供的以下包装器中:
http://www.ft.com/global/mm0802/ag/wrapper
包装器包含以下字符串:
<!-- ftplchol id="contentFixed" version="1.0" -->
我们用我们的内容替换然后渲染页面。
这是我们内容的一个示例:(我遇到的问题在下面描述)
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$('.ActionControl a').live("click", function () {
$.get($(this).attr("href"), {}, function (result) {
// do stuff with result
});
}, "html");
return false;
});
});
</script>
<div class="ActionControl">
<span>Fund Directory</span>
<span>
<a href="/funddirectory/DirectoryResult">A</a>
</span>
<span>
<a href="/funddirectory/DirectoryResult/B">B</a>
</span>
<span>
<a href="/funddirectory/DirectoryResult/C">C</a>
</span>
</div>
当我在包装器的上下文之外运行我的东西时,一切都很好。我的代码按预期运行。但是,当我在将内容插入包装器的情况下运行整个页面时,以下行会引发错误:
$('.ActionControl a').live("click", function () {
说$('.ActionControl a') 为空。具体:Microsoft JScript runtime error: 'null' is null or not an object
虽然没有任何意义。 $('.ActionControl a') couldn't 和 shouldnt 为空,因为当文档准备好时,<div class="ActionControl"> 肯定存在于页面上,当我不这样做时它可以工作' t 使用包装器。我可以通过 FireBug 和 IE Dev 工具栏看到它。
即使我尝试获取类似$('a') 或$('div') 的内容(页面上有很多),它仍然会引发相同的错误。我知道 jQuery 正在工作,因为 $(document).ready() 函数有效..
有谁知道为什么这不起作用?包装器中有什么东西会阻止它看到我的控件或任何其他控件吗?
【问题讨论】:
-
你能把你的措辞精简一点吗?
标签: jquery html asp.net-mvc