1

私はこのようなものを持っているとしましょう:

<head><script src="script1.js" ...></script></head>
<body><div id="div1"></div></body>

これを index.html と呼び、div1 のコンテンツは次のように動的にロードされます

$("#div1").html ("div1.html");

div1.html は次のようなものです

<div id="div2"><canvas id="canv1" ... /></div>

そして、script1.jsでcanv1を参照したい; $("#canv1") を操作するだけでは、script1.js がdiv1.html の前に読み込まれるため、何も起こりません。「[..] が読み込まれるとすぐに何かを行う」方法 (例: $(document).on(...)) はありますか? 私は試した

$(document).on ("load", "#canv1", ...);

しかし、うまくいきません。$(document).on ("click", "#canv1", ...) が機能することに注意してください。クリック...); 何か案は?

4

1 に答える 1

1

おそらく、AJAX呼び出しを使用してコンテンツをロードしてから、コールバックで追加を実行しています。$('#canv1')...を追加の後に、コールバック内に置くと、機能するはずです。

以下のOPのコメントに基づいて編集します。

$.ajax (
    {url: "div1.html",
     cache: false}).
done (function (html){
    $("#div1").append (html);
    $("#canv1").click(...);
 });
于 2012-04-15T23:44:04.953 に答える