0

jquery プラグインを作成しましたが、php スクリプトによって作成された DOM 要素にバインドしたいと考えています。

例として次のマークアップを使用します。

<div class="showcase_window">

<div id='mywhatever'></div>
<div id='mywhatever2'></div>
<div id='mywhatever3'></div>

</div>

これは機能します:

$(document).ready(function(){

    $('#mywhatever').showcase();
    $('#mywhatever2').showcase();
    $('#mywhatever3').showcase();
});

しかし、マークアップはphpスクリプトによって作成されるため、次のようなものを機能させようとしています:

 $(document).ready(function(){

    $('.showcase_window').children().on('showcase');

  });

しかし、私は少し混乱しています...イベントを添付するために「on」が使用されることは理解していますが、どうすればよいかわかりません...

どうもありがとう!

PS: プラグインは次のとおりです。

 $.fn.showcase = function () {

     return this.each(function() {

      var $this = $(this);

      $this.find(".sc_itm_display").hover(function() {
            $this.find(".sc_img_front").stop(true,true).fadeOut("slow");
            }, function() {
        $this.find(".sc_img_front").stop(true,true).fadeIn("slow");
        });

    $this.find('.sc_color_select img').click(function() {

    var color_path_1 = $(this).attr("src").replace("color","1");
    var color_path_2 = $(this).attr("src").replace("color","2");

    $this.find('.sc_itm_display .sc_img_back img').attr("src",color_path_1);
    $this.find('.sc_itm_display .sc_img_front img').attr("src",color_path_2);

    });
    });
    };
4

2 に答える 2

1

onハンドラーをイベントにアタッチします。イベントは、ユーザーアクションまたはプロセスの完了/失敗などです。

イベントではなく関数をアタッチします。この場合、jQueryが自動的にアタッチします。

$('.showcase_window').children()または$('.showcase_window>div')、スクリプトによって作成された3つのサンプルdivが含まれているだけです。

$('.showcase_window').children().showcase();(またはより効率的に$('.showcase_window>div').showcase();

showcase()これらのdivごとに1回実行されます。thisshowcaseにはdiv('mywhatever')自体が含まれます。

于 2012-05-02T13:58:28.920 に答える
1

PHPが操作したい要素を生成している場合は、それを使用して、ターゲットとするコンマ区切りのid値の文字列を含むスクリプトを出力します。次に、プラグインにこれ​​らのターゲットを使用します。

PHPはこれを出力します:

var target_ids = "#this, #that, #the_other";

jQueryで:

$(target_ids).showcase();

または、一意のクラスを使用して、ターゲットにするすべての要素にラベルを付けます。これらの要素のIDを知る必要はありません。

$(".mywhatevers").showcase();
于 2012-05-02T13:58:36.147 に答える