我想更改Web应用中的标准浏览器行为,其中mousedown click会导致单击操作在按钮释放之前发生。我想要这个应用程序中的所有超链接。 有没有一种简单的方法来实现这个jQuery? 我不是在寻找一个单独更改每个链接的解决方案。它应该是一个全局事件处理程序,适用于当前和未来的链接。
示例: 在Yahoo Mail中,只要单击选项卡,该选项卡就会获得焦点。它发生在按钮释放之前。
需要模仿超链接的这种行为
答案 0 :(得分:1)
如果我正确理解您并且您想要覆盖默认链接行为,那么这样的事情应该有效:
$(function(){
$("a").bind({
click: function(e){
e.preventDefault();
},
mouseenter: function(){
window.location.href = $(this).attr("href");
}
});
});
这里是一个jsFiddle:http://jsfiddle.net/H2L4D/1/
答案 1 :(得分:0)
您需要http://api.jquery.com/mousedown/
$('a').mousedown(function() {
alert('Handler for .mousedown() called.');
});
答案 2 :(得分:0)
如果您希望它适用于页面生命周期内的所有超链接,即使是动态创建的超链接,您也需要这样的内容:
$('a').live('mousedown', function(evt)
{
// this stops the default behaviour of the event
evt.preventDefault()
// This changes the location of the page to the href value of the element you clicked
window.location.href = $(this).attr("href");
});
答案 3 :(得分:0)
$('a').unbind('click');
$('a').bind('mousedown', function() {
//alert('mousedown happened');
});