正如标题所示,我在我的网站上收到此错误。我已经通过IE8开发人员调试工具进行了检查,并且我得到了以下导致错误的代码。
<!-- slider js code start -->
<script type="text/javascript">
$().ready(function() {
if(eval(document.getElementById('coda-slider-1')))
{
$('#coda-slider-1').codaSlider();
//jQuery.noConflict(); var $j = jQuery;
}
});
我已添加Chrome调试工具的屏幕截图。
http://img857.imageshack.us/i/javaerror.jpg
http://img204.imageshack.us/i/javaerror2.jpg
请帮我弄清楚。
谢谢。
答案 0 :(得分:4)
请改为尝试:
$(function() {
if($('#coda-slider-1').size())
{
$('#coda-slider-1').codaSlider();
//jQuery.noConflict(); var $j = jQuery;
}
});
你的原始代码说“不用jQuery选择任何东西,并将这个准备好的处理程序应用于它。”正确的长手语法是:
$(document).ready(function() { ...
另请注意,我已删除eval
因为它永远不会被使用,除非无法避免。
<强>更新强>
查看您的错误屏幕截图,似乎没有定义jQuery(至少没有定义$
别名。您是否在页面上包含了脚本?如果是,您是否在调用jQuery.noConflict()
之前你的准备好的处理程序是绑定的吗?
尝试将此脚本标记放在您发布的代码和coda滑块的脚本标记上方:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
更新2
正如kingjiv在下面的评论中指出的那样,我错了,$().ready
会起作用(尽管不推荐)。我相信我的第一次更新,注意到jQuery似乎没有被定义,这是实际的问题。
答案 1 :(得分:0)
我猜你在试图检查是否存在coda-slider-1
?
不需要使用eval,如果你正在使用jquery,也可以用jquery选择元素:
if($("#coda-slider-1").length>0){
}
答案 2 :(得分:0)
问题:
$().ready
。使用
$(document).ready(function
或
简单$(function
。
为何使用document.getElementById
如果jQuery已经查找元素
在crossbrowser中使用选择器
办法?只需$("#some").length
即可
看它是否存在。
同样在你的情况下我觉得很好
确保codaSlider()
方法
在致电之前加载。
更正代码:
$(function() {
if ($("#coda-slider-1").length > 0 && $("#coda-slider-1").codaSlider) {
$('#coda-slider-1').codaSlider();
}
});