1

我正在将touchSwipe jQuery 插件用于一个小的 WebApp。不幸的是,它不适用于动态添加的元素(例如通过 AJAX)。

好吧,我查看了代码并发现了类似的内容:

$element.bind(START_EV, touchStart);
$element.bind(CANCEL_EV, touchCancel);

如何绑定事件以便它们也可用于动态添加的元素?

4

2 回答 2

1

使用on和委托事件:

$(document).on('event', 'element_selector', function(){
    // do when event happens
});

但是对于该插件,您可能必须在将事件添加到页面时将它们附加到新对象。

于 2012-11-27T18:11:13.493 回答
0

.on有关用于此场景的更多详细信息,如本文中的示例所示:

$("#boxes").on('mouseover','.box', function() {
    $(this).trigger('swiping');
});

$("#boxes").on('swiping','.box', function() {
    var $this = $(this);
    $this.swipe({
        swipe: function(event, direction, distance, duration, fingerCount) {
            $this.text("You swiped " + direction );
        }
});

在上面的代码片段中,新.box元素是动态创建的。您创建一个'swiping'事件并在悬停.box元素时触发它(包括通过 AJAX 添加的新元素等)。然后第二部分监视'swiping'事件并附加插件的元素的全部内容。.swipe().box

于 2020-04-30T12:05:29.440 回答