我希望能够更改传递到可选择项的启动事件中的参数,因此我基本上可以允许用户使用可选择的 jQuery UI 效果,而无需按住 CTRL 键。

JS

$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
    var result = $( "#select-result" ).empty();
    event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});

我对我想要在这里完成的事情有一个困惑:

http://jsfiddle.net/josephbulger/ZfevM/

我遇到的问题是,当我在启动方法中设置事件的参数时,停止方法看不到我所做的更改。

有办法完成我想做的事情吗?

有帮助吗?

解决方案

你不能在这里设置属性不...因为它是 不同的 event 对象在 stop 方法。您可以在更高的范围内设置一些变量(像这样),但没有一个会持续存在 event 目的。这并不是说它真的在“清理”它们,它只是一个全新的对象。


使可选择的行为就像 控制键 被按住,绑定到 mousedown 它提前使用事件并设置 .metaKey 财产在那 eventtrue, , 像这样:

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

你可以在这里测试一下, ,记得找 呼叫 .selectable(), ,因为事件处理程序是按顺序执行的。

其他提示

我已经更新了代码。看看这个网址。

http://jsfiddle.net/phoenix_suresh/7f6j5/

同时,我添加了 ID 属性

  • 项目,以便您可以更好地控制它。

  • 找到这个答案我注意到,你可以使用originalEvent财产可选择的event事件处理程序start属性设置为true返回ctrlKey对象后。

    像这样:

    $("#selectable").selectable({
        start: function (event, ui) {
            event.originalEvent.ctrlKey = true;
        }
    });
    

    拨弄

    许可以下: CC-BY-SA归因
    不隶属于 StackOverflow
    scroll top