-1

我想附加一个cycle plugin带有.live()on div element, menas 的 jquery :

目前我正在做:

$("div").cycle();

但我想做:

$("div").live("which event ?", function() { $(this).cycle(); });

我怎样才能做到这一点?

4

4 回答 4

2

您想自动触发事件吗?如果是,这是解决方案:

将自定义处理程序应用于您的元素:

$("div").live("yourEvent", function() { $(this).cycle(); });

然后您可以使用 trigger() 函数触发此事件:

$("div").trigger("yourEvent");
于 2012-06-03T12:45:49.770 回答
1

可惜没有很好的绑定物品的方法就出乎意料了,I'm here event。相反,.live(或.on,因为前者已被弃用)之类的方法对鼠标和键盘事件(一般来说)更有用。

将插件自动应用到所有div.cycleMe元素的最佳方法是将该逻辑放在将这些新元素加载到页面中的函数的 callbak 方法中。例如,如果您有一个$.ajax提取新数据的实例:

$.ajax({
    url: "/getSlider",
    success: function( data ) {
        $("#sliders")
            .append(data).find("div.cycleMe:not(.active)")
                .addClass("active").cycle();
    }
});

在我们的滑块被加载到 之后#sliders,我们的回调函数被执行。它找到所有.cycleMe没有.active该类的元素,添加该类,然后.cycle()针对它们调用该方法。这里的.active类是为了确保我们不会在之前加载的滑块上再次调用循环方法。

于 2012-06-03T12:58:05.993 回答
0

首先,.live()已弃用。建议您使用.delegate()较旧的 jQuery 和.on()1.7+ 版本

如果您将插件加载到动态元素,为什么不在元素加载时附加它们?

例子:

$.get(url,data,function(html){
    $(html)                  //wrap with jQuery
        .appendTo(somewhere) //add somewhere
        .cycle(html);        //add cycle
});
于 2012-06-03T12:45:26.710 回答
0

你试图做的事情是不可能的。在对象上调用 jQuery 方法不像是一个事件,所以你不能以“实时”的方式来做。

于 2012-06-03T12:48:12.787 回答