我正在使用 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
附加到 my之后div
,我将遍历每个<select>
元素,确定它是否已经包含 class hasCustomSelect
,如果没有,则为该元素初始化插件。
然而,这似乎没有达到预期的效果,事实上,它正在产生一个错误。可能有几种方法可以查看是否已应用插件,但我认为检查添加的默认类是否足够。