Dav*_*Dev 1 html asp.net-mvc jquery
我遇到问题,jQuery没有识别我页面上的元素,并抛出一个错误,说我试图选择的元素是null.
我们将内容插入到以下包装器中,该包装器由客户端提供:
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>
Run Code Online (Sandbox Code Playgroud)
当我在包装器的上下文之外运行我的东西时,一切都很好.我的代码表现如预期.但是当我运行整个页面并将内容插入到包装器中时,以下行会引发错误:
$('.ActionControl a').live("click", function () {
说这$('.ActionControl a')是空的.特别:Microsoft JScript runtime error: 'null' is null or not an object
但它没有任何意义.$('.ActionControl a') 不能和不应该,因为当时的文件已准备就绪,为null <div class="ActionControl">肯定存在的网页上,当我不使用包装它的工作原理.我可以通过FireBug和IE Dev工具栏看到它.
即使我试图获得类似$('a')或$('div')(页面上有很多)的东西,它仍然会抛出同样的错误.我知道jQuery正在工作,因为该$(document).ready()函数有效..
有谁知道为什么这不起作用?包装器中是否有某些东西会阻止它看到我的控件或任何其他控件?
当jQuery选择器不匹配任何元素时,它返回一个空数组,而不是null.这意味着没有加载jQuery.您的路径"/Scripts/jquery-1.4.1.js"可能在其"包装器"页面的上下文中无效.也许使用google托管的jQuery版本,它可以在所有上下文中使用:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
更新:我刚想到你可能与jQuery和另一个使用'$'符号的javascript库发生冲突.尝试使用jQuery的"noConflict"模式(http://api.jquery.com/jQuery.noConflict/),看看它是否在该上下文中有效:
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |