这已得到修复。编程很糟糕。我两次调用该函数。所以它正在删除类,但是当函数第二次运行时它正在读取类。抱歉我的编程很差,谢谢大家的帮助。我喜欢stackoverflow因为所有乐于助人的人!
好吧,所以我一直试图找出一些东西,但它可能是我的感冒阻止我解决它。我正在做的是当用户选择添加类的东西时。但是,如果他们再次选择它,我想删除该课程。所以我检查了元素hasClass是否返回true但是当我执行removeClass时它什么也没做...
修改JS看起来像这样。为了表明我可以看到Selectedindex和索引匹配,并且出于某种原因正在跳过/忽略“option-select”的removeClass。我可以改变它来说removeClass(“选项”),它工作正常,但我不能removeClass(“选项选择”)
$(obj.find('.option')).each(function(Selectedindex) {
if ($(this).hasClass('option-selected') && Selectedindex == index) {
$(this).removeClass('option-selected');
console.log(Selectedindex+" == "+index);
}
});
在选择元素时将index传递给函数。
这里有一些HTML
<div id="MultipleSelect-HTML" class="dropdown container" multiple="multiple" style="width: 100%;">
<ul class="options" style="width: 100%; display: block; position: relative;">
<li>
<a class="option option-selected">
<input class="option-value" type="hidden" value="0">
<img class="option-image" src="http://cdn1.iconfinder.com/data/icons/inside/PNG/032x032/icontexto-inside-facebook.png">
<label class="option-text" style="cursor:pointer;">Facebook</label>
<small class="option-description desc">Check out my Facebook page!</small>
</a>
</li>
<li>
<a class="option option-selected">
<input class="option-value" type="hidden" value="1">
<img class="option-image" src="http://cdn1.iconfinder.com/data/icons/inside/PNG/032x032/icontexto-inside-twitter.png">
<label class="option-text" style="cursor:pointer;">Twitter</label>
<small class="option-description desc">Check out my Twitter page!</small>
</a>
</li>
<li>
<a class="option">
<input class="option-value" type="hidden" value="2">
<img class="option-image" src="http://cdn1.iconfinder.com/data/icons/inside/PNG/032x032/icontexto-inside-linkedin.png">
<label class="option-text" style="cursor:pointer;">LinkedIn</label>
<small class="option-description desc">Check out my LinkedIn page!</small>
</a>
</li>
<li>
<a class="option"> <input class="option-value" type="hidden" value="3">
<img class="option-image" src="http://cdn1.iconfinder.com/data/icons/inside/PNG/032x032/icontexto-inside-flickr.png">
<label class="option-text" style="cursor:pointer;">Flickr</label>
<small class="option-description desc">I don't have a flicker Page :(</small>
</a>
</li>
</ul>
</div>
请注意,所有这些信息都是使用javascript动态生成的
感谢您提供的任何帮助。
答案 0 :(得分:2)
您正在为option-selected
执行hasClass但尝试removeClass dd-option-selected
假设它是dd-option-selected
,改变如下,
$(obj.find('.option')).each(function(Selectedindex) {
if ($(this).hasClass('dd-option-selected') && Selectedindex == index)
$(this).removeClass('dd-option-selected');
});
是的,明确表示谢谢......但它仍然不起作用。还有其他想法吗? - Robert E. McIntosh
如果这有选择dd-option并且没有删除该类,那么Selectedindex不等于index - Vega
答案 1 :(得分:1)
您正在hasClass option-selected
但removing dd-option-selected
,you should check dd-option-selected
进行核对。
你的条件是。
if ($(this).hasClass('dd-option-selected') && Selectedindex == index)
$(this).removeClass('dd-option-selected');
如果您不确定类名和类名无关紧要,可以使用removeAttr删除类
$(this).removeAttr('class');