Jquery 如何在ajax添加的元素上绑定触摸事件
我正在使用的是一个小的网络应用程序。 不幸的是,它不能处理动态添加的元素(例如通过AJAX) 我仔细查看了代码,发现如下内容:Jquery 如何在ajax添加的元素上绑定触摸事件,jquery,jquery-plugins,Jquery,Jquery Plugins,我正在使用的是一个小的网络应用程序。 不幸的是,它不能处理动态添加的元素(例如通过AJAX) 我仔细查看了代码,发现如下内容: $element.bind(START_EV, touchStart); $element.bind(CANCEL_EV, touchCancel); 如何绑定事件,使其也可用于动态添加的元素?对和委派事件使用: $(document).on('event', 'element_selector', function(){ // do when event h
$element.bind(START_EV, touchStart);
$element.bind(CANCEL_EV, touchCancel);
如何绑定事件,使其也可用于动态添加的元素?对和委派事件使用
:
$(document).on('event', 'element_selector', function(){
// do when event happens
});
但对于该插件,您可能必须在将事件添加到页面时将其附加到新对象。使用和委派事件:
$(document).on('event', 'element_selector', function(){
// do when event happens
});
但对于该插件,您可能必须在将事件添加到页面时将其附加到新对象。有关在该场景中使用.on
的详细信息,如下图所示:
$(“#box”).on('mouseover','.box',function(){
$(this.trigger('swiping');
});
$(“#box”).on('刷卡','.box',函数(){
var$this=$(this);
$this.swip({
滑动:功能(事件、方向、距离、持续时间、手指计数){
$this.text(“您刷卡”+方向);
}
});
在上面的代码片段中,动态创建了新的.box
元素。您创建了一个'swiping'
事件,并在悬停状态下为.box
元素触发它(包括通过AJAX等添加的新元素)。然后,第二部分监视'swiping'
事件,并附加插件的.swipe()
catchall用于.box
元素。有关在该场景中使用.on
的详细信息,如下图所示:
$(“#box”).on('mouseover','.box',function(){
$(this.trigger('swiping');
});
$(“#box”).on('刷卡','.box',函数(){
var$this=$(this);
$this.swip({
滑动:功能(事件、方向、距离、持续时间、手指计数){
$this.text(“您刷卡”+方向);
}
});
在上面的代码片段中,动态创建了新的.box
元素。您创建了一个'swiping'
事件,并在悬停状态下为.box
元素触发它(包括通过AJAX等添加的新元素)。然后,第二部分监视'swiping'
事件,并附加插件的.swipe()
catchall用于.box
元素。是的,我已经在()上试过了,但它不起作用,因为所有元素(我对许多li
元素使用插件)将在应用程序启动时触发。@Slevin为什么会“触发”?这只是委托事件,不会触发事件。抱歉,措词错误。当用户与其中一个列表元素交互时,将调用此函数。当使用此代码时,将为每个列表元素激发:$(文档)。on(START_EV,$element,touchStart)是的,我已经在()上试过了,但是没有用,因为所有的元素(我用这个插件处理很多li
元素)将在应用程序启动时触发。@Slevin为什么会“触发”?这只是委托事件,不会触发事件。抱歉,措词错误。当用户与其中一个列表元素交互时,将调用此函数。当使用此代码时,将为每个列表元素激发:$(文档)。on(START_EV,$element,touchStart)
关于.live()?你试过了吗?。live()
不推荐使用,应该替换为。on()
,但是。on()
对这个插件不起作用。关于.live()?你试过了吗?。live()
不推荐使用,应该替换为。on()
,但是.on()
此插件不能以这种方式工作。