Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jqueryUI可排序:处理表单输入上的.disableSelection()_Jquery Ui_Forms_Jquery Ui Sortable_Textselection - Fatal编程技术网

Jquery ui jqueryUI可排序:处理表单输入上的.disableSelection()

Jquery ui jqueryUI可排序:处理表单输入上的.disableSelection(),jquery-ui,forms,jquery-ui-sortable,textselection,Jquery Ui,Forms,Jquery Ui Sortable,Textselection,示例:我有一个未排序的列表,其中包含一组表单输入 在生成ul.sortable()之后,我在可排序(ul)上调用.disableSelection(),以防止在拖动li项时进行文本选择 …一切正常,但我需要在表单输入上重新/启用文本选择。。或者表单基本上不可编辑 我找到了部分解决方案@ 启用选择、禁用选择似乎仍未记录: 有什么想法吗 已解决。有点小技巧,但很管用。。有什么意见我可以做得更好吗 apply.sortable(),然后在输入字段上启用文本选择: $("#list").sorta

示例:我有一个未排序的列表,其中包含一组表单输入

在生成ul.sortable()之后,我在可排序(ul)上调用.disableSelection(),以防止在拖动li项时进行文本选择

…一切正常,但我需要在表单输入上重新/启用文本选择。。或者表单基本上不可编辑

我找到了部分解决方案@

  • 启用选择、禁用选择似乎仍未记录:

有什么想法吗

已解决。有点小技巧,但很管用。。有什么意见我可以做得更好吗

apply.sortable(),然后在输入字段上启用文本选择:


$("#list").sortable({
  stop: function () {
    // enable text select on inputs
    $("#list").find("input")
     .bind('mousedown.ui-disableSelection selectstart.ui-disableSelection', function(e) {
      e.stopImmediatePropagation();
    });
  }
}).disableSelection();

// enable text select on inputs
$("#list").find("input")
 .bind('mousedown.ui-disableSelection selectstart.ui-disableSelection', function(e) {
  e.stopImmediatePropagation();
});

我也有同样的问题。解决方案非常简单:

$("#list").sortable().disableSelection();
$("#list").find("input").enableSelect();

jQuery UI 1.9

$("#list").sortable();
$("#list selector").bind('click.sortable mousedown.sortable',function(e){
    e.stopImmediatePropagation();
});

选择器=输入、表、li….

与Zack-jQuery插件的帖子相比有一点改进

$.fn.extend({
    preventDisableSelection: function(){
        return this.each(function(i) {
            $(this).bind('mousedown.ui-disableSelection selectstart.ui-disableSelection', function(e) {
                e.stopImmediatePropagation();
            });
        });
    }
});
完整的解决方案是:

$("#list").sortable({
  stop: function () {
    // enable text select on inputs
    $("#list").find("input").preventDisableSelection();
  }
}).disableSelection();

// enable text select on inputs
$("#list").find("input").preventDisableSelection();

以下内容将禁用对整个文档的选择,但“输入”和“选择”元素仍将起作用

function disableSelection(o) {
  var $o = $(o);
  if ($o.find('input,select').length) {
    $o.children(':not(input,select)').each(function(x,e) {disableSelection(e);});
  } else {
    $o.disableSelection();
  }
}
disableSelection(document);
但请注意.disableSelection已被jquery ui弃用,并有一天会消失。

简单!只要做:

$( "#sortable_container_id input").click(function() { $(this).focus(); });

并将“可排序的容器id”替换为所有“可排序的”元素的容器的元素id。

非常旧,但这里有另一种方法:

$('#my-sortable-component').sortable({
    // ...
    // Add all non draggable parts by class name or id, like search input texts and google maps for example
    cancel: '#my-input-text, div.map',
    //...
}).disableSelection();

如果你能发布你的代码,我可能会让这个工作。。。您是否查看过sortable的
cancel
选项?想一个JSFiddle来解释它。(www.jsfiddle.net)@Fosco。thks。最近有点忙。。我刚刚发布了一个破解方法来解决这个问题。作为一句话,它不仅影响“输入”,还影响“选择”。我没有看到关于“enableSelect()”的jQuery文档。。如果我错了,请纠正我,但我不相信它存在@扎克:可能是打字错误。已修复。正确名称为enableSelection()。看,听起来很棒!这有文档记录吗,你有链接吗?或者是一辆JSFIDLE。。我并不怀疑,因为jQuery是跨平台的,所以它在任何地方都有效:)到底什么不起作用?文本输入是不可选择的。这个问题来自2010年。这里的答案不太可能被阅读。