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 回答