在jQuery中使用自定义事件的Live()

时间:2012-07-23 17:44:25

标签: jquery events live

我正在为鼠标事件和触摸事件使用事件规范化器。这样,我不需要维护两段代码:一条响应触摸事件,另一条响应触摸事件。

它工作正常,但我无法使用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

谢谢!

2 个答案:

答案 0 :(得分:0)

不确定live()是否可以处理基于其委派的自定义方法/事件。委托本身依赖于被触发的实际DOM事件,但它们被委托给document.body级别。尝试使用bind()代替。

答案 1 :(得分:0)

我找到了解决方案。我没有使用live()函数,而是使用委托函数。

例如:

$('#wayPointList').delegate('.deleteWayPoint', TouchMouseEvent.UP, function(){
//do something here
});

像魅力一样! 感谢大家的回答/建议。