Object不支持此属性或方法

时间:2011-05-09 16:55:11

标签: jquery wordpress e-commerce

正如标题所示,我在我的网站上收到此错误。我已经通过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

请帮我弄清楚。

谢谢。

3 个答案:

答案 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();
    }
});