我正在为鼠标事件和触摸事件使用事件规范化器。这样,我不需要维护两段代码:一条响应触摸事件,另一条响应触摸事件。
它工作正常,但我无法使用live()函数。
在规范化过程结束时,以这种方式触发规范化事件:
var touchMouseEvent = normalizeEvent(type, event, event.pageX, event.pageY);
$(event.target).trigger(touchMouseEvent);
我尝试使用这些调用来实现直播活动:
$('.MyClass').live('TouchMouseEvent', function(){...});
$('.MyClass').live('normalizeEvent', function(){...});
$('.MyClass').live('touchMouseEvent', function(){...});
但没有工作。
通常,自定义事件的触发器被称为字符串,如$('。Class')。trigger('customName'),所以我想知道这是否是我为什么要挣扎的原因。
这是我用于规范化的代码。 https://gist.github.com/2375726
谢谢!
答案 0 :(得分:0)
不确定live()是否可以处理基于其委派的自定义方法/事件。委托本身依赖于被触发的实际DOM事件,但它们被委托给document.body级别。尝试使用bind()代替。
答案 1 :(得分:0)
我找到了解决方案。我没有使用live()函数,而是使用委托函数。
例如:
$('#wayPointList').delegate('.deleteWayPoint', TouchMouseEvent.UP, function(){
//do something here
});
像魅力一样! 感谢大家的回答/建议。