[英]How to tell if function being called originated from a click event in javascript
如何判断被调用的函数是否来自click事件?
例如,单击锚点或按钮,捕获事件并调用函数。
在firebug的堆栈跟踪中的这个函数内部,我可以看到这样的Object
Object { originalEvent=Event click, type="click", timeStamp=97128874, more...}
它说原始事件来自一次点击。
根据它是来自还是点击,处理方式不同。
有没有办法判断被调用的函数是否来自click事件?
任何由事件触发的函数都会发送一个事件对象。 在此对象上调用.type
,它将返回它是哪个事件。 以下是jQuery文档中的一个简单示例:
$( "a" ).click(function( event ) {
alert( event.type ); // "click"
});
因此,假设您想要同时收听点击并输入文本输入:
$( "input" ).on("click keyup", eventHandler);
但是你想在点击上做一些特别的事情:
eventHandler = function(event){
if (event.type === 'click'){
// code to execute if there is a click
} else {
// code to execute if there is a non-click event
}
// code to execute for both click and non-click events
};
那将是event.type
var elem = document.getElementById('test');
elem.addEventListener('click', function(event) {
console.log(event.type)
}, false);
或者在jQuery中
$('#test').on('click paste mouseenter', function(event) {
console.log(event.type)
});
看见:
$('div').click(test);
function test(e){
if(e && e.type === 'click')
alert('called from click!');
else alert('NOT called from click!');
}
test();
function myFn( evt ){
console.log( evt.type );
}
$('div').on('click mouseenter mouseleave', myFn);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.