语义上正确的jQuery触发器

时间:2011-01-18 14:37:49

标签: jquery triggers semantics

使用jQuery进行开发时,我经常转向使用href ='#'id ='myTrigger'作为事件的触发器,其中我与return false结合以阻止它实际用作超链接。每当我在此之前发布代码时,我都会被一些经验丰富的人私下用超级链接作为触发器。我应该使用input type =“button”,还是只给任何元素一个ID并将其用作触发器?

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

3 个答案:

答案 0 :(得分:1)

我通常会这样做:

<div id=myTrigger'>Click Me</div>

使用:

$('#myTrigger').click( function() { /* do stuff */ })

...你不需要return false来停止href射击,这在过去我遇到过问题;如果你在JavaScript运行之前单击它,它仍然会触发,例如。这种方式对我来说似乎也是“正确的”,但还有其他方法可以做到。

当然,您可以使用几乎任何东西来点击; div,span,img,button等 - 我几乎不再使用提交了,总是按上面使用的按钮。只需使用当时最好的......

答案 1 :(得分:1)

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

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

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

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

$('a#info').click(function(e){
  alert('info');
  e.preventDefault();
});

请注意,不需要使用id来定位要捕获事件的元素。 id是目标元素的有效方法,但任何定位元素的方法都是有效的。例如:

<div class="button">Eat me</div>

$('.button').click(function(){ alert('Eaten.'); });

答案 2 :(得分:0)

你应该使用适合的情况。不要添加超链接,只需将click事件添加到已存在的元素中。如果它是<p>,则将点击事件添加到<p>,如果它是<img>,则将其添加到该{。}}。