我做了两个下拉菜单,但是每个选择都会影响另一个
matIconRegistry
我已将它们的范围设置为var dd = new DropDown( $('.f-box') );
,但它不能识别唯一元素,但会影响所有匹配的选项。
this
看起来 DropDown.prototype = {
initEvents : function() {
var obj = this;
obj.dd.on('click', function(event){
$(this).toggleClass('active');
return false;
});
obj.opts.on('click',function(){
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
});
}
}
正在匹配所有obj.opts.on('click',function(){}
元素,而不是当前正在单击的元素。我将其分配给.f-box
的方式不正确吗?
答案 0 :(得分:1)
问题是因为您要向.f-box
函数提供所有Dropdown()
元素,因此它对所有元素都起作用。
解决此问题的快速方法是遍历.f-box
并分别调用它们上的函数:
$('.f-box').each(function() {
new DropDown($(this));
});
但是,完全更好的方法是将这种逻辑更改为jQuery插件。然后,标准模式将分别处理每个元素。