javascript - 将参数传递给 jQuery 中的单击事件

标签 javascript jquery click

我有一个 onclick 事件,它将 $(this) 参数传递给函数。

<tr class="myTr">
  <td>
    Han Solo
  </td>
</tr>  

<script>
$('body').on('click','.myTr',function(){
  doSomething($(this));
});
</script>

现在,我想添加另一个步骤。我想显示一个按钮,单击该按钮后,应该调用 doSomething()

<tr class="myTr">
  <td>
    Han Solo
  </td>
</tr>  
<button id="myBtn" style="display:none">Submit</button>

<script>
  $('body').on('click','.myTr',function(){
    $('#myBtn').show();
  });
  $('#myBtn').click(function(){
    doSomething(???);
  });
</script>

如何将 $(this) 传递给第二个点击事件?

我可以轻松地将$(this)存储为按钮的标签,如下所示:

$('body').on('click','.myTr',function(){
  $('#myBtn').attr('origin', $(this));
  $('#myBtn').show();
});
$('#myBtn').click(function(){
  var tr = $(this)attr('origin');
  doSomething(tr);
});

但是我想知道是否有更优雅的方法来解决这个问题?

最佳答案

您需要以某种方式设置状态

数据属性:

$('body').on('click','.myTr',function(){
  $('#myBtn').data('origin', $(this)).show();
});
$('#myBtn').click(function(){
  var tr = $(this).data('origin');
  doSomething(tr);
});

局部变量

(function () {
    var active;
    $('body').on('click','.myTr',function(){
      active = $(this);
      $('#myBtn').show();
    });
    $('#myBtn').click(function(){      
      doSomething(active);
    });
}());

重新绑定(bind)事件:

$('body').on('click','.myTr',function(){
  var active = $(this);
  $('#myBtn')
    .off("click.tr")
    .on("click.tr", function () {
      doSomething(active);
    })
    .show();
});

CSS 类:

$('body').on('click','.myTr',function(){
  $(".myTr.active").removeClass("active");
  $(this).addClass("active");
  $('#myBtn').show();
});
$('#myBtn').click(function(){
  var tr = $(".myTr.active");
  doSomething(tr);
});

关于javascript - 将参数传递给 jQuery 中的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356489/

相关文章:

javascript - 输入设定值

jQuery CSS 过渡动画

javascript - ajax运行时如何禁用点击功能,同一个点击启动ajax运行,ajax完成后,重新启用点击功能

javascript - 如何在 onclick 按钮属性中写入函数

c# - 如何单击网页上的按钮? Java/C#

javascript - Angular js : how to use loop in directive

javascript - 使用来自另一个数组的查询的多个条件过滤数组

javascript - 如何从选择列表和复选框填充对象数组并将此数组用于表格

javascript - Django JavaScript 下拉菜单

javascript - Uncaught ReferenceError : message is not defined?