Javascript 将此传递给方法?
我正在尝试获取生成单击的元素,但我还需要访问num属性Javascript 将此传递给方法?,javascript,jquery,Javascript,Jquery,我正在尝试获取生成单击的元素,但我还需要访问num属性 我怎样才能在我的delete方法中访问这两种类型的“this”?我不知道你在问什么,但也许这就是你想要的: p.num = 100; $('body').on('click', '.del', this.delete.bind(this)); p.delete = function(e) { console.log(this.num); //100 //how can I get the .del elemen
我怎样才能在我的delete方法中访问这两种类型的“this”?我不知道你在问什么,但也许这就是你想要的:
p.num = 100;
$('body').on('click', '.del', this.delete.bind(this));
p.delete = function(e) {
console.log(this.num); //100
//how can I get the .del element?
}
免责声明:以下是我的准确答案(根据当前代码改编):
然而,这个问题似乎并不完全相同(但我可能错了)
如的文档中所述,您可以将数据传递给事件 .on(事件[,选择器][,数据],处理程序) 数据 类型:什么都行 触发事件时传递给event.Data中处理程序的数据 所以你的活动可以是这样的:
var p = {};
p.num = 100;
$('body').on('click', '.del', p.delete); // don't bind to this
p.delete = function(e) {
console.log(p.num); // here you still can call p
// this is del DOM element
}
事件的回调接收一个
事件
对象,您可以使用该对象检索调用事件的元素
p.num = 100;
$('body').on('click', '.del', {object : this}, this.delete);
p.delete = function(e) {
var myObj = e.data.object;
// [myObj] will be your plugin
// [this] will be the clicked element
// [e] will be you event
}
如果您使用的是jquery,则可以将这些函数组合为一个函数,如下所示: 注意:num是一个属性,因此必须使用
.attr()
$(文档).ready(函数(){
$('body')。在('click','del',function()上{
var num=$(this.attr('num');
警报('click function and num='+num);
});
});代码>
function(e) {
var element = $(e.target); //This is the element that the event was called on.
}