我希望能够更改传递给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方法没有看到我正在进行的更改.
有没有办法完成我想要做的事情?
解决方法
您无法在此处设置属性…因为它是stop方法中的不同事件对象.您可以在更高的范围(
like this)设置一些变量,但不会在事件对象上保留任何变量.并不是说它真的“清理”它们,它只是一个打击新物体的品牌.
要使selectable的行为与按住Ctrl一样,请提前绑定到它使用的mousedown事件,并将该event
上的.MetaKey属性设置为true,如下所示:
$("#selectable").bind("mousedown",function(e) { e.MetaKey = true; }).selectable();
You can test it out here,记得在调用.selectable()之前找到,因为事件处理程序是按顺序执行的.