有没有办法在jQuery中更改事件参数?

Jos*_*eph 4 jquery events jquery-ui jquery-ui-selectable

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

JS

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

我有一个小提琴,我想在这里完成的事情:

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

我遇到的问题是,当我在start方法中设置事件的参数时,stop方法没有看到我正在进行的更改.

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

Nic*_*ver 14

您无法在此处设置属性,因为它是方法中的另一个 event对象stop.您可以在更高的范围内设置一些变量(如此),但不会在event对象上保留任何变量.并不是说它真的"清理"它们,它只是一个打击新物体的品牌.


为了使选择表现得好像Ctrl不放,绑定到该mousedown事件,它使用的时间提前,并设置.metaKey该财产eventtrue,像这样:

$("#selectable").bind("mousedown", function(e) {
    e.metaKey = true;
}).selectable();
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试它,记得调用之前找到.selectable(),因为事件处理程序是在命令绑定中执行的.


小智 5

我已经更新了代码.看看这个URL.

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

同时,我已经添加了ID属性

  • 项目,以便您可以更多地控制它.