如何使jquery函数与动态变化的元素一起工作
how to make jquery functions work with dynamically changing elements
首先让我说我看过这篇文章。
它说(和api.jquery.com一样).live()
和.on()
允许您分配一个jquery事件,该事件甚至适用于未来的元素。然而,我的以下jquery:
$("#playerImg").on("mouseenter",function () {
console.log("works");});
在开始时工作,但在我运行此代码后:
function move(moveTo) {
document.getElementById(player.currentLocation).innerHTML = "";
player.currentLocation = moveTo;
document.getElementById(player.currentLocation).innerHTML += player.displayText;
}
以下是相关变量
var player = {
"displayText" : "<img src = 'http://3.bp.blogspot.com/-kAhN0HX-MBk/T_5bApfhbJI/AAAAAAAAAuI/lUww8xT9yV8/s1600/smileys_001_01.png'" +
id='playerImg' "class='onTop' alt='you' border='0' />",
"currentLocation": 0 //(i use a 5 * 5 table with id's 0-24)
}
上面的代码没有运行。我如何在jquery中创建一个事件,它可以在还不存在的元素上运行?
此处链接
像应用直接事件一样使用.on()
,其速度更快,但不适用于动态元素。
对于动态元素,您需要使用类似的.on()
:
$(document).on("mouseenter", '#playerImg',function () {
console.log("works");
});
document
应该是性能增益最接近的静态元素。
附带说明,id
的必须是唯一的,请将其更改为class
。上面的代码可能不起作用,因为它使用了id。如果是这种情况,并且您不想因为任何原因而更改,请使用以下代码:
$(document).on("mouseenter", 'img#playerImg',function () {
console.log("works");
});
相关文章:
- Jquery 如何指定哪个可丢弃对象应与嵌套的可放置元素一起使用
- 如何将键控事件与 JQuery-ui 可拖动元素一起使用
- Chrome 中的 Range.setStartAfter() 无法与跨度或内联元素一起正常工作
- 如何将form_for与非输入元素一起使用
- 如何使jquery函数与动态变化的元素一起工作
- 如何使JQuery同位素与改变高度的元素一起工作
- 当文本与元素一起悬停时发生更改时,onclick事件的Grab Text
- 如何将jQuery fadeIn与使用.after创建的元素一起使用
- 重力点无法与其他元素一起正常工作
- ie9 innerHTML不能与datatable .js创建的select元素一起工作
- 按键事件如何与不带任何焦点的元素一起工作?
- 不需要的SVGAnimatedString与SVG元素一起创建
- 如何使每个函数与动态添加的元素一起工作
- Jquery函数还应该与其他元素一起工作
- 我的click事件不能与新的li元素一起工作
- onClick事件与被单击的元素一起被父元素捕获
- 是否可以将findbar与非浏览器元素一起使用
- mootools:使ajax回调与单击的元素一起工作
- 将jquery中的下一个元素和所选元素一起删除
- 将元素附加到 - 将 while 与动态添加的元素一起使用