如何传递$(this)jquery对象

时间:2016-11-26 07:33:21

标签: jquery twitter-bootstrap

我想要实现的是

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
} 

enter image description here

enter image description here

2 个答案:

答案 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
    }