如何为动态生成的id初始化JQuery脚本

时间:2013-07-30 08:59:01

标签: php jquery

编辑::我的大脑吸烟:)也许我从错误的角度看这个?我们需要JQuery为每个动态生成的id初始化。我们是否必须为每个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">";?>

感谢您的帮助!!

2 个答案:

答案 0 :(得分:0)

您可以使用此选择器 -

$('ul[id^="slider"].unoslider')

答案 1 :(得分: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的元素,并使用data-jquery-options中的json序列化选项初始化插件。