我正在使用JQuery插件customSelect()
http://adam.co/lab/jquery/customselect/来设置下拉框的样式。
如果我在同一个元素上多次初始化脚本,它们将停止工作。我需要找到一种方法来只对通过AJAX插入到DOM中的新创建元素初始化插件。
所以,我在所有下拉菜单(期望的效果)上初始化它 -
$('select').customSelect();
和我选择此插件工作的元素被赋予一个“hasCustomSelect”类,如此
<select class="hasCustomSelect"></select>
但如果我初始化两次 -
$('select').customSelect();
$('select').customSelect();
它将完全停止工作。
所以,在我的AJAX请求中,我初始化了没有该类的元素,但它似乎没有工作。这是AJAX -
$.ajax({
type: 'POST',
url: 'wp-content/themes/themetitle/functions/get-child.php',
data: { childID : theID, URL : theURL, classlevel : classlevel },
beforeSend:function() {
},
success:function(data) {
$('#makesort').append(data);
makesort();
$.each('select', function() {
if( $(this).hasClass('hasCustomSelect') ) {
//DO NOTHING!
} else {
$(this).customSelect();
}
});
},
error:function() {
}
});
所以,我的想法是在data
附加到我的div
后,我将浏览每个<select>
元素,确定它是否已包含类{{1}如果没有,则初始化此元素的插件。
然而,这似乎并没有产生预期的效果,事实上,它产生了一个错误。可能有几种方法可以查看是否已经应用了插件,但我想查看是否已经添加的默认类就足够了。
答案 0 :(得分:1)
为您的每一个尝试:
$('select:not(.hasCustomSelect)').each(function() {
$(this).customSelect();
});
...或
$.each($('select:not(.hasCustomSelect)'), function() {
$(this).customSelect();
});
您收到错误的原因是因为$.each(...
的第一个参数是对象的集合,而不是选择器。