2011-07-13 10 views
0

jquery用のこのポップアッププラグインを使用して、奇妙な動作が発生します。私は作成者に連絡しましたが、答えは得られず、私のコードに一般的な問題があるかどうかをここで尋ねたいと思います。クリックイベントpageloadの後の最初のクリックでのみ動作します

セットアップ: 新しいタブでページを開く通常の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

2番目のクリックでエラーが発生します:エラー1 '$("#popupbox ")bPopupは関数ではありません [Stanna vid fel] $( "#popupbox")。bPopup({contentContainer: '#pContent'、loadUrl:url});それは初めて動作するからです。エラー2: '$("#popupbox ").BPopupは関数ではありません。 [Stanna vid fel](範囲外158)' – Joseph

+0

'$( '#popupbox')を追加していると思います。 '彼らは何かをクリックする度に。あなたはただ一度それを追加するべきです – 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

答えがありがたいですが、解決できませんでした。結果は以下の通りです:クリックするとブラウザがリンクをたどり、ポップアップが開きました。クリック後、ブラウザはリンクをたどっただけです。 – Joseph

+0

stopPropagationで正常に動作するはずです。 2回目のクリックでjsエラーが発生していますか? – ShankarSangoli

+0

私は上記のコメントと同じエラーが発生します – Joseph

関連する問題