2013-10-14 114 views
0

我被给了一个简单的项目,使用jquery显示带有mouseover事件的图像。我们的目标是仅当它是mousedover时才显示qtip,并且事先将它们全部绑定在负载上,而且速度很慢。他们使用qtip 1.0,我遇到了'太多递归错误',并且无法识别递归发生的位置。我做了一些研究,它可能与事件冒泡有关,但尚未能解决它。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 } 
      }); 
    }); 

}); 
+0

任何更新qtip2的机会? – mplungjan

+0

我对此表示怀疑,除非绝对必要,否则不会升级。 –

+0

也许它会在您每次悬停时创建一个新实例。你可以在创建它之前尝试摧毁它。 '$(“#”+ event.target.id).qtip('destroy');' – Moob

回答

-1

呃,问题是我没有正确阅读手册并且实施不正确。现在一切都很好。

+1

您可以编辑您的答案,以解决问题的方式与社区分享。 stackoverflow的目标是有Q和A. Thanx –

0

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

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

,你也可以检查currentTarget当前是点击一个特定的类或ID,以确保你所点击的是你想要的元素触发

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

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

我不能使用事件代表团像我通过检查你的点击是什么上面没有看到你的markup..but想你想要点击,所以它不会冒泡的DOM