我有一个通用列表,在找到有关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

08-18 11:48
查看更多