【问题标题】:jquery selectable mousedown unselecting metakeyjquery可选择mousedown取消选择元键
【发布时间】:2016-12-19 12:43:23
【问题描述】:

我正在尝试为移动应用程序(使用 jquery mobile)选择工作。如果我使用控制 mousedown 来选择单个添加(并取消选择),一切都会很好。

但由于它是用于移动应用程序,因此我无法使用控制键。我添加了这段代码来处理控制键..它可以添加选择事件,但它会破坏选定事件的取消选择。 (即,如果您单击所选项目,它不会取消选择)。同样由于某种原因,这会在一段时间后挂断并且处理事件的速度非常慢......

这是我正在谈论的代码:

  $("#tableId").bind("mousedown", function (e) {
        e.metaKey = true;
}).selectable();

我的全套代码在 jsfiddle 中: http://jsfiddle.net/Y3TUj/38/

【问题讨论】:

    标签: javascript jquery jquery-mobile jquery-ui-selectable


    【解决方案1】:

    如果您在移动设备上,为什么不使用tap 来选择和取消选择(而不是metakey)...?

    试试这个:

        $("#tableId").bind("tap", function(e) {
            e.preventDefault();
            var el = e.target;
            if ($(el).hasClass("ui-selected")) {
               $(el).removeClass('ui-selected').addClass('ui-unselecting');
            } else {
               $(el).addClass("ui-selecting");
            }
            $("#tableId").data("ui-selectable")._mouseStop(null);
       });
    

    小提琴:http://jsfiddle.net/xw16e2ks/1/

    【讨论】:

    • 感谢您的回复。这样做的问题是点击取消选择所有先前的选择。我正在尝试对其进行设置,以便仅在该单元格被鼠标按下时才取消选择先前的选择...
    • @user2040850:你试过我的例子吗? e.preventDefault(); 应该避免这种情况。
    • 是的。从桌面上,当我尝试它时,单击第二个单元格取消选择前一个单元格,单击选定的单元格并没有取消选择该单元格
    • @user2040850:从桌面上,套索选择的标准行为仍然保持不变,就像可选中的内置一样。但是:如果您尝试使用 Chrome 并从开发人员工具中选择移动选项,那么您将看到 Tap 事件将被引发,并且行为将是移动标准,即点击选择任何您想要的,点击取消选择任何您想要的.这就是我提议的原因,因为移动套索选择可能会导致滑动。
    • 感谢您的解释。这就是我需要的移动设备。我的一个问题是,有没有办法让桌面橡皮筋(你称之为套索??)在你进行第二次选择的地方工作并保持以前的值被选中? ...现在我正在为台式机和移动设备制作两个单独的页面,因此使用不同的脚本不是问题...但它会很好。
    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多