我正在使用onclick哈希链接的事件打开<div>一个弹出窗口.但是中间点击不会触发onclick事件,只会获取href链接的属性值并在新页面中加载URL.如何使用中间点击打开<div>弹出窗口?
这是我所看到的行为的JSFiddle,涉及中间点击和clickChrome和FF中的事件.
方法1:将click处理程序直接绑定到a元素,中键单击将触发Chrome中的处理程序,但不会触发FF.
$('div a').on('click', function(ev) {
// middle click triggers this handler
});
Run Code Online (Sandbox Code Playgroud)
方法2:将委托的click处理程序绑定到div包含一个或多个的处理程序a.中键单击不会在Chrome或FF中触发此处理程序.
$('div').on('click', 'a', function(ev) {
// middle click doesn't trigger this handler
});
Run Code Online (Sandbox Code Playgroud)
如果div开始为空并且a稍后通过AJAX调用填充元素,或者作为某些用户输入的结果,则此方法非常有价值.
使用mouseup而不是click导致方法1和2都在两个浏览器中都有效.
// Approach 1 w/ mouseup
$('div a').on('mouseup', function(ev) {
// middle click **does** trigger this handler in Chrome and FF
});
// Approach 2 w/ mouseup …Run Code Online (Sandbox Code Playgroud)