-1

・以下のアンカータグはJS経由でページに追加されます。

#sC-イベントがバインドされている場合、コンテナー divはそこにあります。

-jQuery 1.7.2 の使用

-構文エラーもコンソール エラーもありません。

-はい、JS はスクリプト タグでラップされ、コンテンツは本文にあります。マークアップの警告やエラーはありません。

-私が考えることができる唯一のことは、これらのリンクに添付された別のイベントがあり、コードが機能した後でも常に機能していることです..しかし、それがどこから来ているのかわかりません(devtoolsとfirebugは本当にわかりません接続されている場所を示し、jQuery ライブラリの 1 行目を指しています...)

$(document).ready(function() {
    $('#sC').on('click','a', function(event) {
            alert("POOP");
    });
});
<div id="sC">
    <a href="javascript:return false">A</a>
    <a href="javascript:return false">B</a>
    <a href="javascript:return false">C</a>
    <a href="javascript:return false">D</a>
    <a href="javascript:return false">E</a>
    <a href="javascript:return false">F</a>
</div>

更新 これも試しました:

<div id="sC">
    <a href="javascript:return false">A</a>
    <a href="javascript:return false">B</a>
    <a href="javascript:return false">C</a>
    <a href="javascript:return false">D</a>
    <a href="javascript:return false">E</a>
    <a href="javascript:return false">F</a>
</div>

これも機能しません (???):

$(document).ready(function() {
    $('#sC').on('click','.scenarios', function(event) {
        alert("POOP");
    });
});
<div id="sC">
    <span class="scenarios">A</span>
    <span class="scenarios">B</span>
    <span class="scenarios">C</span>
    <span class="scenarios">D</span>
    <span class="scenarios">E</span>
    <span class="scenarios">F</span>
</div>

その後、コンソールで .on() 関数をスローして、それが機能するかどうかを確認してみました (機能するはずですよね? いいえ。F *** クロム コンソール)... コンソールでこれを試してみると、うまくいきまし:

$('#sC .scenarios').click(function(event) {
    alert('f*** this s***');
});
4

2 に答える 2

0

clickon なしでハンドラーを使用してみましたか? それは動作しますか?(デバッグ目的で)。

また、onハンドラーを常にドキュメント自体にバインドする傾向があります-これはページの読み込み時に常に存在するためですが、ページの読み込み時に存在する場合は、関数で#sCバインドしているため、問題は発生しないはずです。onready

以下のコードが機能するかどうかを確認してください。

$(document).ready(function() {
    $(document).on('click','#sC a', function(e) {
            e.preventDefault();//this will stop the page navigating away
            alert("POOP");
            //if after you do something then want to continue navigating the page
            //from the anchors `href`
            window.location = $(this).attr('href');
            return false;//I always tend to return false
    });
});
于 2013-09-10T23:06:27.953 に答える