Mouseover和mouseout对萤火虫不起作用

Mouseover and mouseout not working on firefox?

本文关键字:萤火虫 不起作用 mouseout Mouseover      更新时间:2023-09-26

我想在鼠标悬停时尝试图像幻灯片放映,在鼠标悬停后停止下面是我的代码:但是鼠标悬停在外也在调用。。它在铬上运行良好。。。

default_image = '';
timer = 0;
jQuery('.sales-product-images').on('mouseover',function(){
    var counter = 0;
    var selector = jQuery(this);
    var pd_id = jQuery(this).attr('id');
    var imageArray = jQuery.parseJSON(images);
    var product_images= imageArray[pd_id];
    default_image = jQuery(this).attr('data-image');
    console.log('default-image= ' + default_image);
    timer = setInterval(function(){selector.fadeOut("fast", function () {
        console.log(counter);
        if (counter === product_images.length) {
            console.log('==');
            counter = 0;
        }
        console.log('localhost/product/' + product_images[counter]);
        selector.attr('src', 'localhost/product/' + product_images[counter]);
        selector.fadeIn(2500);
        counter = counter+ 1;
    });
}, 2000)});

jQuery('.sales-product-images').on('mouseleave', function() {
    console.log('now end');
    // var counter = 0;
    clearInterval(timer);
)}; 

问题是:firefox中的mouseover上也打印了"now-end"。不应该是。

试试这个:

jQuery('.sales-product-images').on('mouseout', function() {
   console.log('now end');
   // var counter = 0;
  clearInterval(timer);
)}; 

问题可能是由mouseovermouseleave一起使用引起的,当它的配对事件应该是mouseout时。配对如下所示。

鼠标悬停/鼠标退出

$( ".sales-product-images" )
   .mouseover(function() {
      console.log("mouse over");
   })
   .mouseout(function() {
      console.log("mouse out");
});

鼠标进入/鼠标离开

$( ".sales-product-images" )
   .mouseenter(function() {
      console.log("mouse enter");
   })
   .mouseleave(function() {
      console.log("mouse leave");
});

以上方法是.on("", function(){})方法的快捷方式。

您可以将javascript重写如下:

default_image = '';
timer = 0;
jQuery('.sales-product-images').mouseover(function(){
    var counter = 0;
    var selector = jQuery(this);
    var pd_id = jQuery(this).attr('id');
    var imageArray = jQuery.parseJSON(images);
    var product_images= imageArray[pd_id];
    default_image = jQuery(this).attr('data-image');
    console.log('default-image= ' + default_image);
    timer = setInterval(function(){
        selector.fadeOut("fast", function () {
            console.log(counter);
            if (counter === product_images.length) {
                console.log('==');
                counter = 0;
            }
            console.log('localhost/product/' + product_images[counter]);
            selector.attr('src', 'localhost/product/' + product_images[counter]);
            selector.fadeIn(2500);
            counter = counter+ 1;
        });
    }, 2000);
}).mouseout(function() {
    console.log('now end');
    // var counter = 0;
    clearInterval(timer);
});