2011-07-13 56 views
0

我使用jQuery的弹出插件并获得一些奇怪的行为。我已经联系了创建者,但没有得到答案,并且想问一下在我的代码中是否存在任何常见问题。点击事件只适用于页面加载后第一次点击

设置: 在新选项卡中打开页面的定期html链接(对于禁用JS的用户)。

下面的js捕捉链接点击并动画弹出窗口而不是链接。

问题: 它的工作原理是每次页面加载时的第一次点击,但是点击后跟着href。

JS

$("a[class*='popupbox-link']").live("click",function (e) { 
     if($("#popupbox").length == 0){ 
      $('body').append('<div id="popupbox"><a class="bClose">Stäng</a><div id="pContent"></div></div>'); 
     } 
     var url = this.href; 
     $("#popupbox").bPopup({contentContainer:'#pContent', loadUrl: url }); 
     e.stopPropagation(); 

     return false 
    }); 
+1

听起来像有一个JavaScript错误。你有萤火虫打开,如果是的话,你有任何错误 – locrizak

+0

你是对的我在第二 - n点击错误:错误1'$(“#popupbox”)。bPopup不是一个功能 [Stanna vid fel] $(“#popupbox”)。bPopup({contentContainer:'#pContent',loadUrl:url});'怎么来的?因为它第一次工作。错误2:'$(“#popupbox”)。bPopup不是函数 [Stanna vid fel](158超出范围3)' – Joseph

+0

我的猜测是因为你添加了'$('#popupbox')。bPopup '每次他们点击一些东西。你应该只添加一次 – locrizak

回答

0

试图阻止事件传播

$("a[class*='popupbox-link']").live("click",function (e) { 
    e.stopPropagation(); 
    if($("#popupbox").length == 0){ 
     $(‘body’).append(‘Stäng‘); 
    } 
    var url = this.href; 
    $("#popupbox").bPopup({contentContainer:'#pContent', loadUrl: url }); 


    return false; 
}); 
+0

感谢您的答案,但它没有解决它,更改导致:点击1浏览器跟随链接并打开弹出。点击浏览器后点击链接。 – Joseph

+0

它应该适用于stopPropagation。在第二次点击你得到任何JS错误? – ShankarSangoli

+0

我得到了同样的错误,因为我上面提到 – Joseph

0

尝试使用委托,而不是活

+0

同样的js错误。 – Joseph

相关问题