0

編集:: 私の脳は喫煙しています :) おそらく私はこれを間違った角度から見ているのでしょうか? 動的に生成された ID ごとに JQuery を初期化する必要があります。すべての ID に対して JQuery を実行する必要がありますか (つまり、PHP ループに配置する必要がありますか)?

この JQuery スクリプトを、動的に生成された ID リストに適用するにはどうすればよいでしょうか。PHP でループすると ID が 1 ずつ増えます。

JQuery は次のとおりです。

$(document).ready(function(){ 
    $('#slider').unoslider({
                scale: 'true', 
                responsive: 'true',
                touch: 'true',
                preset: 'bar_fade_left',
                navigation: {autohide: true},
                slideshow: {speed: 5, timer: false},
                animation: {delay: 200}
  }); 
}); 

そして、動的に生成された ID は次のとおりです。

<?php echo "<ul id="slider'.$counter.'" class="unoslider">";?>

助けてくれてありがとう!!

4

2 に答える 2

0

data-*属性に基づいて要素を初期化できるシンプルなプラグインを作成しました。

<?php echo "<ul data-jquery-bind='unoslider' ".
    "data-jquery-options='" . htmlspecialchars(json_encode($unoSliderOptions), ENT_QUOTES) . "'>;"?>

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

$.fn.jqueryBind = function() {
    return (this.length ? this : $('body')).each(function() {
        var $root = $(this);
        $root.find('[data-jquery-bind]').each(function() {
            var jqueryFn = $(this).attr('data-jquery-bind');
            var options = $(this).attr('data-jquery-options');
            if (options) {
                options = $.parseJSON(options);
            }
            $(this)[jqueryFn](options);
        });
    });
};

それから加えて:

$(function() {
    $.jqueryBind();
});

そして、属性を持つ要素を自動的に検索data-jquery-bindし、.json のシリアル化されたオプションを使用してプラグインを初期化しますdata-jquery-options

于 2013-07-30T10:18:27.677 に答える