我列出了一些元素:
<ul class="ui-selectable">
<li data-id=100.100></li>
<li data-id=101.100></li>
<li data-id=102.100></li>
<li data-id=103.100></li>
...
此时你有机会选择不止一个听众。
如何改变这一点,所以你只能选择一个听众?问候!
答案 0 :(得分:2)
试
$('.ui-selectable :not([data-id=""])').click(function() {
if($('.ui-selectable .selected').length == 0 || $(this).hasClass('selected')){
$(this).toggleClass('selected');
$(this).parent().trigger('update');
}
});
答案 1 :(得分:1)
添加
$('.ui-selectable .selected:not([data-id=""])').removeClass('selected');
答案 2 :(得分:0)
您可以通过检查 li items
是否有selected
课程来轻松实现。
if(!$('。ui-selectable:not([data-id =“”])')。hasClass('selected'))
{
//你的代码
}
我最初被误解了你的需要,我想你想要选择的黑色元素只能在那个li系列中出现一次。然后请尝试demo。
$('.ui-selectable :not([data-id=""])').click(function() {
$('.ui-selectable :not([data-id=""])').removeClass('selected');
$(this).toggleClass('selected');
$(this).parent().trigger('update');
});
答案 3 :(得分:0)
尝试:
$('.ui-selectable :not([data-id=""])').click(function () {
if ($('.selected').not(this).length>0) return
$(this).toggleClass('selected');
$(this).parent().trigger('update');
});
答案 4 :(得分:0)
<ul class="ui-selectable active"> //add class active
并将脚本更改为
$('.ui-selectable :not([data-id=""])').click(function (e) {
if ($(e.target).parent().hasClass('active')) {
$(this).toggleClass('selected');
$(this).parent().trigger('update');
$(e.target).parent().removeClass('active').addClass('deactive')
}
else {
$(e.target).parent().children('li.selected').removeClass('selected')
$(e.target).parent().removeClass('deactive').addClass('active')
$(e.target).trigger('click')
}
});