0

我得到了一个使用 jquery 显示带有鼠标悬停事件的图像的简单项目。目标是仅在鼠标悬停时才显示 qtip,事先它将所有这些都绑定在加载时,它真的很慢。他们使用 qtip 1.0,我遇到了“递归错误太多”,我无法确定递归发生的位置。我做了一些研究,它可能与事件冒泡有关,但还没有解决它。

$(document).ready(function(){

$( ".employee" ).hover(function(event) {
         event.stopPropagation();
         var content = '<img src="/upload_test/';
        <!--  content += $(this).attr('id'); -->
          content += 'test.jpg';
          content += '" alt="Loading thumbnail..." height="202" width="254" />';

        $("#" + event.target.id).qtip(
          {
             content: content,
             position: {
                corner: {
                   tooltip: 'leftTop',
                   target: 'leftTop'
                }
             },
             style: {
                 height:202,
                 width:280,
             border: {
                 width: 7,
                 radius: 5,
                 color: 'black'
          }
                 // Give it a speech bubble tip with automatic corner detection

             },
            hide: { fixed: true, delay: 1000 }
          });
    });

});
4

2 回答 2

0

为什么不使用event.currentTarget代替:

 $("#" + event.currentTarget.id).qtip( ...

您还可以检查 currentTarget 是否单击了特定的类或 id 以确保您单击的是要触发的元素

if($(e.currentTarget).is(".some-class")){

     // code goes here for qtip
     $("#" + event.currentTarget.id).qtip( ...
     ...
}

我看不到您的标记..但是像我上面所做的那样使用事件委托,通过检查您的点击想要点击什么,这样它就不会冒泡 DOM

于 2013-10-14T16:38:15.203 回答
-1

嗯,问题是我没有正确阅读手册并错误地执行它。现在一切都很好。

于 2013-10-15T12:07:22.260 回答