JQuery document.ready函数没有被触发

时间:2013-07-02 17:44:12

标签: jquery

没有什么复杂的,真的,只是因为“#title”div上的文字没有改变,所以这段代码似乎没有触发

<script type="text/javascript">
    var images = $('#cofzSlider img');
    var count = images.length();
    var i = 0;

    $(document).ready(function() {
        if (i == count) {
            i = 0;
        }
        i++;
        images[i].addClass('active');
        $('#title').text("dasdas");
    });
</script>

2 个答案:

答案 0 :(得分:2)

有几个问题。

length是属性,而不是函数。应该是:

var count = images.length;

addClass是一个jquery函数,不适用于该元素。应该像这样获取jquery对象而不是dom元素:

    images.eq(i).addClass('active');

每次根据您拥有的内容加载页面时,您会看到images[1],这是否需要?

当您使用$('#cofzSlider img');访问dom时,您需要确保它也在$(document).ready()

PS:如果你只是在运行时查看控制台,你应该会看到其中的一些错误。在此之前提出问题之前,您应该尝试这样做以避免这种情况。

答案 1 :(得分:1)

你有多个问题:

  1. 长度是一个属性,它不是一个函数。 将var count = images.length();更改为var count = images.length;

  2. 您在使用之前递增i,这意味着您永远不会获得images中的第0个元素,因此将i++移到最后。

    < / LI>
  3. 为什么在一个只调用一次的函数中甚至有一个i++?这对我来说没什么意义。也许我只是没有看到它。如果您想将所有图片设置为有效,请执行以下操作:images.addClass('active');