我正在尝试改进我的自定义 jquery 插件。我以前在这里问过这个。之前的问题解决了。现在我想让我的插件更灵活。因此,我不依赖于硬编码的旧类,而是试图让它依赖于选择框的值数组,这些值会根据它们的值动态更改类。我这样做的原因是,有时在我单击选择选项之前该类不存在。有时它适用于其他选择器。
为了更好地说明我想要实现的目标:
如果选择器具有任何选择框值的类,请删除此类,添加新类,基于最新选择的值。
所以这是最新的代码:
$.fn.classSwitcher = function(options) {
var baseOptions = {
classTarget: 'body',
newClass: ''
};
var options = $.extend(baseOptions, options);
var allVals = [];
return this.find('option').each(function() {
//retrieve all select box values
allVals.push( $(this).val() );
$(this).click(function() {
var t = $(this);
var newClass = (options.newClass) ? options.newClass : t.val();
// Is it okay to do hasClass to array values?
if ($(options.classTarget).hasClass(allVals)) {
$(options.classTarget).removeClass(allVals).addClass(newClass);
}
// problem here I guess, can not update the old class with the one
allVals = newClass;
$.cookie('cookieNewClass', newClass, { expires: 1 });
//alert('New Class: ' + $.cookie('cookieNewClass')); // produced expected new class
//alert(allVals); // produced expected new classes
});
});
};
该类已添加,但与上一个问题一样,我无法更新目标类以替换为新类。另请参阅代码中的注释以了解其他问题。
如果已解决并已解决,请随意将其标记为 dup :)
任何提示将不胜感激。谢谢