2

タイトルで述べたように、JS に問題があります。

js:

$("#bg2InsideFb").click(function () {
       $("#fbLink").click();
    });

html:

<div id="bg2InsideFb">
    <p id="fbIcon">
        <img src="@routes.Assets.at("images/mobile/login/fblogin-ico.png")" alt="Facebook"/>
    </p>
    <p class="pl20">
        <a id="fbLink" href="@fb.authenticationUrl"> @Messages("review.form.facebook.login") </a>
    </p>
 </div>
 <p class="floatleft f13">
    @Messages("review.form.facebook.term")
 </p>

これにより、Chrome がクラッシュし、Firefox が多すぎる再帰エラーをスローします。何が起こっていて、どうすれば解決できますか?

4

4 に答える 4

4

#fbLink内の要素であるプログラムでクリックしています#bg2InsideFb。イベントのバブリングにより、まったく同じクリックが後の要素に影響し、別のクリックがトリガーされます。これを防ぐには、次のように伝播を防ぐ内部要素にリスナーをフックする必要があります。

$('#fbLink').click(function(jqEvt) {
    jqEvt.stopPropagation();
}

event.stopPropagationの jQuery API を参照してください。

于 2013-04-10T09:49:29.310 に答える
1

#fbLink をトリガーしたいと思います。この場合、使用する必要があります

$('#fbLink').click(function(ev) { 
    ev.stopPropagation();  
});
$('#fbLink').triggerHandler('click');``
于 2013-04-10T09:51:35.723 に答える
0

あなたがそれを呼び出すとき$("#fbLink").click();、実際にはその親も呼び出します。そのため、再帰エラーが発生します。実際に何をしたいのか説明していただけますか?

$("#bg2InsideFb").click(function () {
   $("#fbLink").click(function(){
      return false;
   });
});

それはうまくいくかもしれません。

于 2013-04-10T09:52:59.980 に答える