我有一个通用列表,在找到有关ListBoxes和Apple产品或触摸设备之后,我必须实现(我没有针对android进行测试)。
我的清单如下:
<ul>
<li>
<ul>
将在运行时创建并填充列表项标签。
我的Js / Jquery如下:
$('.List li').on('click touch', function () {
var selected;
selected = document.querySelector('li.selected');
console.log(selected);
if (selected)
selected.classList = '';
this.classList = 'selected'
document.getElementById('ItemValue').value = this.id;
});
就像我希望它在计算机上工作一样,它可以选择项目并应用CSS。
我已经在Ipad上对其进行了测试,但确实选择了它,但未应用CSS。我知道它已被选中,因为我可以在点击项目后操纵列表中项目的位置。
我不想通过Js / Jquery设置背景色,我更喜欢添加一个类并在必要时将其删除。
$(this).css('background-color', 'colour')
任何帮助,将不胜感激 :)
补充说明:
我尝试在CSS中将':focus'添加到选定的类中,这在Ipad和计算机上不起作用。
编辑_1:
我已经尝试按照stackoverflow线程上的建议添加填充,但是这没有用。
编辑_2:
尝试了更新和更新的Ipad,问题仍然存在,因此我认为它与兼容性无关。
最佳答案
我自己解决了这个问题,只需使用classList的remove和add方法即可。
我更换了
selected.classList = '';
to:
selected.classList.remove('selected');
selected.classList = 'selected';
to:
this.classList.add('selected');
以下网址可帮助我解决此问题:
https://developer.mozilla.org/en/docs/Web/API/Element/classList