在Javascript中捕获点击和击键事件,覆盖默认行为?

时间:2011-08-08 15:05:06

标签: javascript events event-handling jquery

我使用jQuery编写了一些JavaScript代码,用户可以在不按住Shift键的情况下监听用户在页面的不同部分点击鼠标。

我的页面上有一张桌子。想法是用户可以通过单击选择表中的行。用户可以通过单击一行,按住shift并单击另一行来选择多行。 (这是用户期望选择多行的方式,但是按住shift键,对吗?)

无论如何,我的代码在Internet Explorer中工作,但我遇到了问题。我的代码读取用户选择,但浏览器同时突出显示两个鼠标单击位置之间的文本。

我如何才能使我的代码可以根据用户点击选择行,而浏览器不会选择文本?

更新我尝试了以下代码:
$('tr').bind('mousedown',function() { return false; } );

在我的页面中使用此代码,当我单击一行时,按住shift并单击另一行,两行之间的文本将突出显示。这就是我想要压制的东西。请注意,在我释放鼠标按钮之前,文本突出显示

更新#2 我尝试了以下代码:

   $('tr').bind('mousedown',function(e) { 
   e.preventDefault();
   return false;
   });

不幸的是,这似乎根本没有做任何事情。

3 个答案:

答案 0 :(得分:1)

这是您要抑制的 mousedown 事件。

查看event.stopPropogation()event.preventDefault()

答案 1 :(得分:0)

规范会忽略事件处理程序的返回值(jQuery可能会添加其他内容)。

您可能正在寻找preventDefaultreturnValue(后者的发明恰恰是因为忽略了处理程序的返回值。)

您可能还想查看CSS3属性扩展名-moz-user-select: none

答案 2 :(得分:0)

试试这个

$(function(){

  $("tableSelector").bind('selectstart mousedown',function () { 
      return false; 
  });

});