我有两个文件。 HTML和.js文件。在code.js中,我编写了jquery代码,在HTML文件中,我将code.js包括在内:
<script src="jquery-1.4.2.js"></script>
<script src="jquery.interval.js"></script>
<script src="code.js">
jQuery.noConflict();
var $jcode = jQuery;
</script>
在code.js中,我写了以下内容:
jcode(document).ready(function() {
jcode.interval(checkForms, 2000);
});
当我运行它时,它给了我错误,因为无法读取间隔未定义的属性。 我认为我对noConflict的使用有问题。你能帮忙吗?
由于
答案 0 :(得分:2)
您遇到的问题是使用包含内联代码的脚本标记的src属性。将调用noConflict移动到code.js或创建一个新的脚本标记,在引用code.js之前调用noConflict。
<script>
jQuery.noConflict();
var $jcode = jQuery;
</script>
<script src="code.js"></script>
另外,正如其他人所说,在引用你的jQuery别名时一定要使用$ jcode而不是jcode。
John Resig在他的Degrading Script Tags帖子中讨论了这个问题。
答案 1 :(得分:1)
您没有定义jcode
变量。 $jcode
完全不同。选择其中一个。坚持$jcode
:
另外,正如cleek所述,为code.js使用单独的(早期)script
块:
<script type="text/javascript">
$jcode(document).ready(function() {
$jcode.interval(checkForms, 2000);
});
</script>
<script src="code.js" type="text/javascript"></script>
答案 2 :(得分:1)
您正在将jQuerys的$分配给$ jcode。
因此你应该使用$ jcode而不是jcode(例如$ jcode(document).ready())
$jcode(document).ready(function() {
$jcode.interval(checkForms, 2000);
});
这应该有用。
答案 3 :(得分:0)
<script src="jquery-1.4.2.js"></script>
<script src="jquery.interval.js"></script>
<script src="code.js">
$.noConflict();
</script>
jQuery(document).ready(function($) {
$.interval(checkForms, 2000);
});
尝试使用jQuery
代替$ symbol答案 4 :(得分:0)
你正在混合使用内部和外部JavScript,这至少是一种不好的做法,甚至可能会失败。
将code.js中的代码替换为:
jQuery(document).ready(function() {
jQuery.interval(checkForms, 2000);
});
在您的页面中,编写脚本部分,如下所示:
<!-- no JavaScript before this line -->
<script src="jquery-1.4.2.js"></script>
<script src="jquery.interval.js"></script>
<script src="code.js"></script>
<script>jQuery.noConflict()</script>
<!-- load or insert other JavaScript here -->
这假设你实际上需要noConflict(),因为你的例子没有显示其他库。我假设你把它们排除在这个问题之外。
如果仍然出现错误,可能是因为jquery.interval.js没有正确编码。