<ol id="selectable">
<li class="ui-widget-content">
<div><input type="checkbox" /></div>
<div>Item1</div>
<div>Khanput</div>
<div>1/2/3</div>
<div>15:03:16</div>
<div>--------</div>
<div>23m</div>
<div>Chakwal</div>
</li>
</ol>
我只想选择'li'元素而不是'div',但它会全部选择它们。 我尝试过一些东西,但没有成功。
答案 0 :(得分:1)
如果您选择了<li>
元素,那么当点击<li>
时,其中的内容也会被“选中”。
就jQuery UI而言,只有<li>
实际上是“已选中”。您可以看到这一点,因为<li>
在被选中时会被ui-selected
一类;相反,内容被赋予ui-selectee
类。
答案 1 :(得分:0)
您可以添加此自定义插件
$.widget("xim.singleSelectable", {
options: {
select: null
},
_create: function () {
var self = this;
this.element.addClass('ui-selectable');
this.element.delegate('li', 'click', function (e) {
self.element.find('>li').removeClass('ui-selected');
$(this).addClass('ui-selected');
if ($.isFunction(self.options.select)) {
self.options.select.apply(self.element, [e, this]);
}
});
},
selected: function () {
return this.element.find('li.ui-selected');
},
destroy: function () {
$.Widget.prototype.destroy.apply(this, arguments); // default destroy
}
});
那么你的代码将是
$( "#selectable" ).selectable({
stop: function() {
$( "li.ui-selected", this ).each(function() {
var index = $( "#selectable li" ).index( this );
alert(index);
});
}
});
我在这里找到了解决方案 How to prevent multiple selection in jQuery UI Selectable plugin