使所有超链接在jQuery中对鼠标keydown执行单击操作?

时间:2011-11-18 17:25:11

标签: javascript jquery html

我想更改Web应用中的标准浏览器行为,其中mousedown click会导致单击操作在按钮释放之前发生。我想要这个应用程序中的所有超链接。 有没有一种简单的方法来实现这个jQuery? 我不是在寻找一个单独更改每个链接的解决方案。它应该是一个全局事件处理程序,适用于当前和未来的链接。

示例: 在Yahoo Mail中,只要单击选项卡,该选项卡就会获得焦点。它发生在按钮释放之前。

需要模仿超链接的这种行为

4 个答案:

答案 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');
});