-1

on 、 menasでjquerycycle pluginをアタッチしたい:.live()div element

現在私はやっています:

$("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

残念ながら、サプライズでアイテムをバインドする良い方法はありません。私はここにいるイベントです。代わりに、.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でcycleメソッドを再度呼び出さないようにするためのものです。

于 2012-06-03T12:58:05.993 に答える
0

あなたがしようとしていることは不可能です。オブジェクトでjQueryメソッドを呼び出すことはイベントのようなものではないため、「ライブ」の方法で呼び出すことはできません。

于 2012-06-03T12:48:12.787 に答える
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 に答える