我希望能够更改传递给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();
});
我有一个小提琴,我想在这里完成的事情:
http://jsfiddle.net/josephbulger/ZfevM/
我遇到的问题是,当我在start方法中设置事件的参数时,stop方法没有看到我正在进行的更改。
有没有办法完成我想要做的事情?
答案 0 :(得分:14)
您无法在此处设置属性,因为它是event
方法中的不同的 stop
对象。您可以在更高的范围(like this)设置一些变量,但不会在event
对象上保留任何变量。并不是说它真的“清理”它们,它只是一个打击新物体的品牌。
要使可选择的行为与按住 Ctrl 一样,请提前绑定到它使用的mousedown
事件,并在{{3}上设置.metaKey
属性转到true
,就像这样:
$("#selectable").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable();
event
,记得在调用.selectable()
之前找到,因为事件处理程序是按照绑定的顺序执行的。
答案 1 :(得分:5)
答案 2 :(得分:4)
找到此答案后,我注意到您可以使用可选originalEvent
事件处理程序中返回的event
对象上的start
属性将ctrlKey
属性设置为true
像这样:
$("#selectable").selectable({
start: function (event, ui) {
event.originalEvent.ctrlKey = true;
}
});
工作fiddle