请看下面的代码。
function deferredClick(f) {
return (function (e) {
var $this = $(e.currentTarget);
console.log('Actual target: ', e.currentTarget);
window.setTimeout(function () {
console.log('Target I get here: ', e.currentTarget);
f.call($this.get(0), e);
}, 1000);
});
}
function clickResponder(e) {
var $this = $(e.currentTarget);
$("#out").html('Clicked - ' + $this.val());
}
$('input[type="button"]').on('vclick', deferredClick(clickResponder));
这个想法是在一定延迟后触发事件处理程序。当你运行上述代码时,你会在控制台中看到两个日志。[JSFiddle演示在这里 - http://jsfiddle.net/D7GTP/]
Actual target: <input class="ui-btn-hidden" type="button" value="click me" data-disabled="false">
Target I get here: Document
为什么从第四行到第七行,e.currentTarget
会发生变化?
请注意:所涉及的事件是由jquerymobile提供的vclick
事件。
$this
还是一样的,那么为什么e
会改变呢? - AppleGrew