Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
语义正确的jQuery触发器_Jquery_Triggers_Semantics - Fatal编程技术网

语义正确的jQuery触发器

语义正确的jQuery触发器,jquery,triggers,semantics,Jquery,Triggers,Semantics,在使用jQuery开发时,我经常使用href='#'id='myTrigger'作为事件的触发器,在这种情况下,我结合return false来阻止它实际用作超链接。以前,每当我在这里发布代码时,我都会因为使用超链接作为触发器而被一些更有经验的人处以私刑。我应该使用input type=“button”,还是只给任何元素一个ID并将其用作触发器 jQuery触发的最佳实践是什么?您应该在这种情况下使用适当的方法。不要添加超链接,只需将单击事件添加到已经存在的元素中即可。如果它是一个,那么将单击事

在使用jQuery开发时,我经常使用href='#'id='myTrigger'作为事件的触发器,在这种情况下,我结合return false来阻止它实际用作超链接。以前,每当我在这里发布代码时,我都会因为使用超链接作为触发器而被一些更有经验的人处以私刑。我应该使用input type=“button”,还是只给任何元素一个ID并将其用作触发器


jQuery触发的最佳实践是什么?

您应该在这种情况下使用适当的方法。不要添加超链接,只需将单击事件添加到已经存在的元素中即可。如果它是一个
,那么将单击事件添加到
如果它是一个
那么将其添加到该事件中。

我通常会执行以下操作:

<div id=myTrigger'>Click Me</div>
。。。然后,您不需要使用
返回false
来停止href触发,我过去遇到过这个问题;例如,如果在JavaScript运行之前单击它,它无论如何都会启动。这种方式在我看来也有点“正确”,但还有其他的方式


当然,你可以使用几乎任何东西来点击它;div、span、img、button等等-我几乎不再使用submit,总是像上面那样使用一个按钮。只需使用当时最好的…

这取决于您正在做什么,以及元素的默认行为是什么

例如,如果您要通过在弹出窗口中打开页面来替换链接的默认行为,那么使用链接是非常有意义的。搜索引擎仍将看到该链接,对于那些禁用了客户端脚本的少数人来说,它将优雅地降级

另一方面,如果您使用的事件与使用链接的导航完全不同,那么您应该使用不同的元素

要停止链接的默认行为,可以使用
preventDefault
方法。例如:

$('a#info').click(function(e){
  alert('info');
  e.preventDefault();
});
<div class="button">Eat me</div>

$('.button').click(function(){ alert('Eaten.'); });
请注意,不需要使用id来定位要捕获事件的元素。id是指向元素的有效方法,但指向元素的任何方法都是有效的。例如:

$('a#info').click(function(e){
  alert('info');
  e.preventDefault();
});
<div class="button">Eat me</div>

$('.button').click(function(){ alert('Eaten.'); });
吃了我 $('.button')。单击(函数(){alert('eat');});