0
繼我之前提出的問題之後,我決定去編寫一系列模仿移動事件(tap,taphold等)的jQuery插件。jQuery Event Plugin issues
我有這個概念的工作,但我有問題執行處理函數。以下是我正在定義插件方法:
(function($) {
var touch_capable = isTouchCapable();
var settings = {
swipe_h_threshold : 30,
swipe_v_threshold : 50,
taphold_threshold : 750,
startevent : (touch_capable) ? 'touchstart' : 'mousedown',
endevent : (touch_capable) ? 'touchend' : 'mouseup'
};
// tap Event:
$.fn.tap = function(handler) {
return this.each(function() {
var $this = $(this);
var started = false;
$this.bind(settings.startevent, function() {
started = true;
});
$this.bind(settings.endevent, function() {
if(started)
{
handler();
}
});
});
};
}) (jQuery);
然後我可以綁定這些「事件」使用$('#a_div').tap();
。我的問題是這樣的:
如果我將函數傳遞給tap()
方法,該方法對元素起作用,則會出現錯誤。例如:
$('#my_div').tap(function() { alert($(this).get()) });
實際上在提醒[object DOMWindow]
。任何人都可以指出我正確執行處理函數的方向嗎?它能以某種方式與事件傳播有關嗎?
哇,從來不知道那個原型!謝謝@Matt! – BenM
很高興幫助@BenM :) – Matt