如何强制DOM在Javascript/jQuery中重新评估?

fms*_*msf 3 javascript jquery

我动态地将HTML附加到网页上,我也使用jQuery来管理内容.

当我添加HTML代码时,jQuery忽略了它的存在.
例如:

$("td.elementToClick").click(...
Run Code Online (Sandbox Code Playgroud)

将与jQuery一起使用.但是,如果代码中的某个地方我追加:

$("tr#myRowToAppend").append("<td class="elementToClick>...</td>");
Run Code Online (Sandbox Code Playgroud)

如果点击它,jQuery将忽略这个新元素.

在jQuery的网页加载完成后,相关联的事件,我需要两个解决方案之一: - 强制DOM不改变当前的布局重新EVAL页面(我不希望刷新,所以location.reload()是出问题). - 强制jQuery将这个新元素添加到它的内部事件管理器中.

我不想使用onclick="blabla()",我真的需要使用jQuery.

我怎么能做到这一点?

Nad*_*mli 9

您正在寻找的是jQuery live.从文档描述:"将处理程序绑定到所有当前和未来匹配元素的事件(如单击).还可以绑定自定义事件."

还有一个插件liveQuery,可以根据需要支持更广泛的事件.

  • @bendewey - live目前不适用于所有活动.从1.3开始,它适用于click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,keypress和keyup,但不能模糊,聚焦,mouseenter,mouseleave,change或submit. (2认同)