我有一个功能,让我在点击时选择一个元素。它是这样的:
$('ul.grid li').click(function() {
var input = $(this).find('input.select-state:first');
var value = input.attr('value');
if (value == '0') {
$(this).addClass('active');
input.attr('value', '1');
} else {
$(this).removeClass('active');
input.attr('value', '0');
}
});
当我添加jQuery sortable时,当我删除它时,会立即选择被删除的元素,因为此函数会运行。解决这个问题的方法是什么?
谢谢!
答案 0 :(得分:0)
从未使用过jQuery Sortable,但您可以将.stopImmediatePropagation()
的调用添加到调用sortable的函数中吗?
答案 1 :(得分:0)
您可以在拖动开始时在元素上设置一个标志,如下所示:
$(document).ready(function(){
$('ul.grid').sortable({
start: function(event, ui){
ui.item.data('dragged', true);
}
});
});
然后在点击功能中检查并翻转该标志,如下所示:
$('ul.grid li').click(function() {
if($(this).data('dragged')){
$(this).data('dragged', false);
} else {
var input = $(this).find('input.select-state:first');
var value = input.attr('value');
if (value == '0') {
$(this).addClass('active');
input.attr('value', '1');
} else {
$(this).removeClass('active');
input.attr('value', '0');
}
}
});