0

JS:

$(document).ready(function(){

    $("#loader").load("external.html");

    $("#buttonClickText").live('click', function() {
        $("#buttonClickText").text("Text changed after button click.");
    });

    // MYSTERY FUNCTION
    $("#pageLoadText").text("Text changed after external HTML was loaded.");
    //

});

外部 HTML:

<div id="buttonClickText">
    This text changes when clicked.
</div>

<div id="pageLoadText">
    This text should have changed when external HTML was loaded, but didn't.
</div>

メイン HTML (関連するタグのみを表示):

<div id="loader"></div>

また、.live() は jQuery 1.7 以降では非推奨であることを知っています。解決策は .on() を使用して同様になると思います

ありがとう!

4

2 に答える 2

1

http://api.jquery.com/load/から:

この方法は、サーバーからデータをフェッチする最も簡単な方法です。$ .get(url、data、success)とほぼ同じですが、グローバル関数ではなくメソッドであり、暗黙のコールバック関数がある点が異なります。成功した応答が検出された場合(つまり、textStatusが「success」または「notmodified」の場合)、. load()は、一致した要素のHTMLコンテンツを返されたデータに設定します。

2番目の引数として関数を渡すだけです。

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});
于 2012-10-18T21:13:18.027 に答える
1

以下は、この問題の解決策です。

$(document).ready(function(){
$("#loader").load("external.html", function()
        {
            $("#pageLoadText").text("Text changed after external HTML was loaded.");
        }
    );

$("#buttonClickText").live('click', function() {
    $("#buttonClickText").text("Text changed after button click.");
});

});

于 2012-10-18T21:14:29.153 に答える