jQuery选择器不适用于一个div

时间:2014-04-26 06:07:17

标签: javascript jquery html

为什么这个jQuery选择器根本不起作用? 选择另一个元素,如$(“body”)或另一个div工作正常。 这个选择器在CSS中起作用

使用Javascript:

$(".slideshow, .slideshow figure, .slideshow figure img").hover( function() {
    stopSlideshow();
    alert("HEY"); 
  }, 
  function(){
    startSlideshow();
  });

HTML:

<div class="slideshow">
    <?php
    $counter = 1;
    foreach($images as $image)
    {
        echo "<figure>
                  <img src=\"" . $image . "\" width=\"1024\" height=\"600\"  />
                  <figcaption>ehojlhaiel;jgaelgkjnaqgjqaegaeg</figcaption>
              </figure>";
    }
    ?>
</div>

生成的HTML: http://i.stack.imgur.com/W3w6g.png

enter image description here

2 个答案:

答案 0 :(得分:1)

当你的slideshow div实际加载到DOM中时,它就是在正确的时间绑定悬停事件。要修复它,你可以这样做:

$(document).on("mouseenter", ".slideshow", function(){
    //your code
});

通过这种方式,您无需等到slideshow加载到DOM中。

不使用直播活动的另一种方法是在将slideshow添加到页面后运行代码。

答案 1 :(得分:0)

试试这个

jQuery("div.slideshow").hover(function() { 
  // code inside here 
});

如果动态生成此div,则执行此操作

  jQuery("div.slideshow").on("hover",function() { 
      // code inside here 
    });