jQuery - 仅在满足特定HTML属性时显示鼠标光标旁边的图像

时间:2012-11-16 03:39:25

标签: javascript jquery html image hover

当鼠标悬停在div上时,我当前有一个图像显示... 但我只是鼠标旁边显示的图像,如果“div”的HTML属性为“align =”center“,如果没有,那么我不希望图像显示?

我觉得我很安静,但我无法弄清楚如何调用var“divalign”属性,昨晚花了很多时间:S

$(document).ready(function() {
    var $img = $("#MainImage");
    $img.hide();
    var divalign = $("div").attr("align="center");
    $('div').mousemove(function(e) {
        $img.fadeIn(0);
        $img.offset({
            top: e.pageY - $img.outerHeight()-2,
            left: e.pageX - ($img.outerWidth()-18)
        });
    }).mouseleave(function() {
        $img.fadeOut(250);
    });
});

提前致谢。

4 个答案:

答案 0 :(得分:3)

  $('div').mousemove(function(e) {
      if ($(this).attr('align') === 'center') {
        // only show if the align attribute has value center
        $img.fadeIn(0);
        $img.offset({
            top: e.pageY - $img.outerHeight()-2,
            left: e.pageX - ($img.outerWidth()-18)
        });
      }
    }).mouseleave(function() {
        $img.fadeOut(250);
    });

答案 1 :(得分:1)

此行中有错误

 var divalign = $("div").attr("align="center");

将其更改为

 var divalign = $("div").attr("align","center");

答案 2 :(得分:1)

如果您可以为这些DIV提供类名(例如:class =" alignCenter"),那么就更清晰了,然后在这些div上注册事件处理程序。

$('div.alignCenter').on('mousemove', function(e) {
     ..........................

});

答案 3 :(得分:0)

试试这个:

$('div[align="center"]').mousemove(function(e) {
        $img.fadeIn(0);
        $img.offset({
            top: e.pageY - $img.outerHeight()-2,
            left: e.pageX - ($img.outerWidth()-18)
        });
      }
    }).mouseleave(function() {
        $img.fadeOut(250);
    });