相关疑难解决方法(0)

将本机浏览器事件对象转换为jQuery事件对象

我通过本机浏览器onclick属性为元素分配一个事件处理函数:

document.getElementById('elmtid').onclick = function(event) { anotherFunction(event) };
Run Code Online (Sandbox Code Playgroud)

当我进入时anotherFunction(event),我希望能够像使用jQuery中通过该.on()方法获得的事件对象一样使用事件对象.我想这样做是因为jQuery事件对象具有诸如的属性和方法.pageX,.pageY并且.stopPropagation()可以在所有浏览器中使用.

所以我的问题是,在我将本机浏览器事件对象传入之后anotherFunction(),如何将其转换为jQuery事件?我试过了$(event),但没办法.

这里最明显的问题是:你为什么不只是使用jQuery .on,.bind,.click等来分配你的事件处理函数?答案:我正在构建一个页面,其中有一个巨大的表格,上面有很多可点击的东西.不幸的是,这个项目要求页面必须在IE6和IE7中快速渲染..on在IE6和IE7中使用et等会很快造成DOM泄漏并耗尽内存(使用Drip测试自己:http://outofhanwell.com/ieleak/index.php? title = Main_Page).设置onclick行为.onclick是我必须在IE6和IE7中快速渲染的唯一选项.

javascript jquery internet-explorer

24
推荐指数
3
解决办法
9378
查看次数

Jquery:检测是否单击了鼠标中键或右键,如果是,请执行以下操作:

看看我的jsfiddle 演示,如果e.which == 1那样当你左键单击h2它会 e.which == 2e.which == 3然后它不会工作.2是鼠标中键,3是鼠标右键.我也发现了这个:

JQuery提供了一个e.which属性,分别为左,中,右三次返回1,2,3.所以你也可以使用if(e.which == 3){alert("right click"); }

此代码无效:

码:

    $("h2").live('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
      alert("middle button"); 
   }
});
Run Code Online (Sandbox Code Playgroud)

jquery click keycode live right-mouse-button

13
推荐指数
1
解决办法
2万
查看次数