我想要实现的是
1)我有一个包含1个项目的框,其中包含删除图标
2)点击删除图标我显示使用boostrap模型构建确认框
3)点击"是"我正在从框中删除项目
现在问题就像我怎样才能传递$(this)的第一个删除图标 ???
删除代码就像
<a class="removepromo pull-left" data-code-name="test" data-rel="21468" href="javascript:void()">
<i class="fa fa-remove remove-btn" title="Remove Promo"></i>
</a>
现在点击模型中的yes,我想要删除按钮的所有属性
这里的click事件绑定(删除图标和模型是按钮)是不同的,所以如何传递$(this)对象???
当前解决方案
我可以发一个答案,因为这是实现它的最丑陋方式之一,这就是我的想法
$('body').on('click','.apply_promo_code',function(e){
e.preventDefault();
var url = $(this).data('href');
// open model code, where I have taken yes and no button
//Code for yes button is like :
var btn ='<div data-ref="'+url+'" class="btn confirm-btn confirm-left-btn removepromo_yes">Yes</div>';
return false;
}
$('body').on('click','.removepromo_yes',function(e){
e.preventDefault();
var url = $(this).data('ref');
// all other stuff
}
答案 0 :(得分:0)
将$(this)保存在一个变量中,并在另一个方法中使用onclick函数:
$('.apply_promo_code').on('click',function(e){
e.preventDefault();
var removeObject=$(this);
$('.removepromo_yes').on('click',function(e){
e.preventDefault();
var url =removeObject.data('href')
})
return false;
} )
如果在之前的函数中定义了yes按钮的onClick handlere,则没有问题
答案 1 :(得分:0)
您可以添加功能并将其作为参数传递
<a class="removepromo pull-left" data-code-name="test" data-rel="21468" href="javascript:void()" onclick="onremove(this)">
<i class="fa fa-remove remove-btn" title="Remove Promo"></i>
</a>
function onremove(val){
console.log(val)
// val will give you current anchor tag so you can do whatever you want to do
}