【发布时间】:2015-05-23 13:57:30
【问题描述】:
我正在尝试对页面上当前不可用的元素使用使用“on()”的事件委托。在这种情况下,我需要将一些数据传递给“on()”函数,它是一个 JSON 对象。代码如下:
$(document).off('click',targetElement).on('click',targetElement,eventData,function(e){
e.preventDefault();
e.stopImmediatePropagation();
console.log(e.data)
});
我的问题是,当触发此事件时,e.data 作为空对象返回,因此 m 无法使用它。 我已经使用此处提供的参考 API 构建了此代码:http://api.jquery.com/on/
谁能指导一下这里出了什么问题?
P.S 目标元素不在页面上。它在某些函数调用时呈现。
【问题讨论】:
-
无法复制;你有什么工作正常:jsfiddle.net/vvyy6mpL你能在你的问题中添加一个问题的工作演示吗?
-
这是您代码的一部分吗?你在哪里定义targetElement?你必须用你的对象的正确 ID 替换“targetElement”。
-
@RoryMcCrossan 在小提琴中,您提供的元素在 DOM 中。尝试动态创建元素然后绑定它。
-
@user1481887 鉴于代码仍然使用委托事件处理程序,这没有区别。
-
@AliSheikhpour 这个绑定声明来自另一个函数,该函数在元素插入 DOM 后被调用。但我认为当我们以这种方式使用“on()”时,这并不重要。
标签: javascript jquery events delegation