我认为我也看过javascript :; 随着网络的发展,很难跟踪到那里可用的技巧。但这主要是关于可访问性(除了javascript:void(0);),而只是一个小小的修正不是javascript:void(0)但是javascript:void(0); 这意味着什么都不做就返回false;尽管不确定javascript:return false; 一样。
我一直使用并且建议使用javascript:void(0); 当然有两个原因。
1.)我使用它的原因是上面提到的同一个人。.href =“#”不适合使用,因为它可能表示要到达顶部,即使在这种情况下,“#top”对于这种情况也足够了。但这也会触发代码中使用#(哈希)的其他内容,因此另一个原因是避免与其他可能使用#的JavaScript发生冲突。而且,例如,在使用插件时,我倾向于查找此字符,并立即将其替换。.href ='#'到href ='javascript:void(0);' 或href ='javascript :;'
2.)如果我想为一组特定的Anchor标记重用一个函数,则可以在任意属性上使用选择器来调用它,而不必担心检测到click事件并防止默认操作,并且我什至没有想到作为发展偏好。
3.)在大多数情况下,如果您使用javascript:void(0);建立链接,尝试使链接不遵循旧的href = rel = nofollow,因此它避免索引作为操作的链接。我对此不太确定,只是因为听说爬虫和机器人现在甚至可以读取Flash,所以如果他们可以读取javascript链接也不会感到惊讶
4.)从2.)进行引用,您可以定位到类似的类,而无需使用href =“ javascript:void(0);”来避免单击事件默认操作。然后直接从jQuery函数的选择器中定位类。
jQuery(function($)
{
$('a[rel="-your-rel-id"]') ... off('click').on('click',function()
//from the class
$('a.-the-class') ... off('click').on('click',function()
$('a#-the-id').off('click').on('click',function()
{
--do something with this link
});
});
我宁愿像往常一样去上课更自在...
$(a#-your-id).hasClass(-yourclass-)
或任何其他有趣的组合,并且会影响许多链接..所以我真的不建议仅将A用作选择器。
通常我在这里看到的是这样的:
jQuery(function($)
{
$('a[rel="-your-rel-id"]').on('click',function(event)
//do something
//prevent the click as is passed to the function as an event
event.preventDefault();
});
});
onclick是迄今为止将事件处理程序附加到元素的最简单,最干净的方法。