编辑::我的大脑吸烟:)也许我从错误的角度看这个?我们需要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">";?>
感谢您的帮助!!
答案 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序列化选项初始化插件。