为了账号安全,请及时绑定邮箱和手机立即绑定

替代支持eventData的jQuery .toggle()方法?

替代支持eventData的jQuery .toggle()方法?

慕运维8079593 2019-10-11 10:36:30
在jQuery文档的.toggle()方法规定:为方便起见,提供了.toggle()方法。手动实现相同的行为是相对直接的,如果内置于.toggle()的假设证明是限制性的,则可能有必要。.toggle事实证明,内置的假设限制了我当前的工作,但是文档并未详细说明如何实现相同的行为。我需要将eventData传递给提供给的处理函数toggle(),但似乎仅.bind()支持此功能,而不支持.toggle()。我的第一个倾向是使用单个处理程序函数全局的标记来存储单击状态。换句话说,而不是:$('a').toggle(function() {  alert('odd number of clicks');}, function() {  alert('even number of clicks');});做这个:var clicks = true;$('a').click(function() {  if (clicks) {    alert('odd number of clicks');    clicks = false;  } else {    alert('even number of clicks');    clicks = true;  }});我尚未测试后者,但我怀疑它会起作用。这是做这样的事情的最好方法,还是我想念的更好的方法?谢谢!
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

似乎是一种合理的方式...我只是建议您使用jQuery的数据存储实用程序,而不要引入额外的变量(如果您想跟踪一大堆链接,这可能会让人头疼) 。因此,根据您的示例:


$('a').click(function() {

  var clicks = $(this).data('clicks');

  if (clicks) {

    alert('odd number of clicks');

  } else {

    alert('even number of clicks');

  }

  $(this).data("clicks", !clicks);

});


查看完整回答
反对 回复 2019-10-11
  • 2 回答
  • 0 关注
  • 358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信