1

jQuery .load() を使用してコンテンツをロードしています。追加されたコンテンツ内には、値を取得して別の関数に渡したいデータ属性がいくつかあります。

.load() コードは次のとおりです。

url += ' #post';    

$("#modal_base #modal_inner").load(url , function(response, status, xhr) {
    if (status == "error") {
        var msg = "Sorry but there was an error: ";
        $('#error').appendTo( '#modal_inner' );
        $("#error").html(msg + xhr.status + " " + xhr.statusText);
    }
});

コンテンツが読み込まれると、data- 属性が表示#modal_base #modal_inner #postされます。この要素にはイベントがないと思われます。何らかの形で委任されたイベント ハンドラーをドキュメント要素にアタッチする必要があります。

data-pag-nextとのdata-pag-next値を取得する最善の方法は何ですか?

4

1 に答える 1

3

complete取得したページの要素が宛先要素に読み込まれ、DOM が更新されると、コールバックが発生するため、それを探すだけで済みます。

$("#modal_base #modal_inner").load(url , function(response, status, xhr) {
    if (status == "error") {
        var msg = "Sorry but there was an error: ";
        $('#error').appendTo( '#modal_inner' );
        $("#error").html(msg + xhr.status + " " + xhr.statusText);
    } else {
        alert( $(this).find('#post').attr('data-pag-next');
        alert( $(this).find('#post').data('pag-next') ); //If using jQuery 1.4.3+
        //examples of getting the data out
        window.yourvar = $(this).find('#post').data('pag-next'); //you can access window.yourvar anywhere in your code outside .load()
        some_function_of_your( $(this).find('#post').data('pag-next') );//pass the value to some function defined by you in the global scope
    }
});
于 2012-11-01T11:27:32.007 に答える