Исходя из моего предыдущего вопроса, я решил попробовать написать серию плагинов jQuery, имитирующих мобильные события (tap, taphold и т. Д.).
У меня работает концепция, но у меня проблемы с выполнением функций обработчика.Вот как я определяю методы плагина:
(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]
.Может кто-нибудь указать мне в направлении правильного выполнения функции обработчика?Может ли это быть как-то связано с распространением событий?