0

私は物事を非常に簡単に設定しているのですが、なぜこれが機能しないのか頭を悩ませることはできません。私はこれが正しいことを知っていますが、それでも機能しません。

.navigate-buttonajaxされて.overlay-contentいるので.overlay-content、ページの読み込み時にDOMに含まれていないため、.on

リンクをクリックすると、通常どおりページに移動します。私は、さえも拘束されていないことを知っています.navigate-button

マークアップ:

<div class="overlay" id="overlay">
    <div class="overlay-content--bg">
        <div class="overlay-content">

    <a class="navigate-button left" href="/question.php?id=<?php echo $json->id-1;$json->id+1; ?>">
        <
    </a>
    <a class="navigate-button right" href="/question.php?id=<?php echo $json->id+1; ?>">
        >
    </a>
        </div>
    </div>
</div>

JS:このコードをコンソールで実行すると、期待どおりに機能します

$('#overlay').on('click','.navigate-button', function(){
    var id = $(this).attr('href');
    id = id.split('=');
    console.info(id[1]);
    callPage(id[1]);
    return false;
});

function callPage (id) {
    $.ajax({
        url:'/question.php?id='+id,
        success: function(data){
            $('.overlay-content').html(data);
            FB.XFBML.parse(document.getElementById('overlay'));
            $('.overlay').fadeIn();
        }
    });
}
4

2 に答える 2

1

これはチャットで解決しました。ジェイミーの問題は、divのクリックイベントが、それを呼び出したハンドラーによってキャッチされて処理されていたため.navigate-button、divまでバブリングしていなかったことです。解決策は、その中間ハンドラーを削除することでした。#overlay.stopPropagation

于 2012-11-25T22:11:00.303 に答える
0

これを試しましたか?

$(document).on('click', '.navigate-button', function() {
    YOUR FUNCTION
});
于 2012-11-25T20:41:30.443 に答える