4

selectableのstartイベントに渡されるパラメーターを変更できるようにしたいので、基本的に、ユーザーがCTRLキーを押さなくてもselectablejQueryUIエフェクトを使用できるようにすることができます。

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メソッドが行っている変更を認識しないことです。

私がやろうとしていることを達成する方法はありますか?

4

3 に答える 3

14

ここでプロパティを設定することはできません...メソッド内の eventのオブジェクトであるstopためです。いくつかの変数をより高いスコープ(このようにevent)に設定できますが、オブジェクトに保持される変数はありません。それが本当にそれらを「クリア」しているのではなく、それは単に新しいオブジェクトをスパンキングしているブランドです。


選択可能なものを押したままのように動作させるには、事前に使用Ctrlするイベントにバインドし、そのプロパティを次のように設定します。mousedown.metaKeyeventtrue

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

ここでテストできます。イベントハンドラーは順序どおりに実行されるため、呼び出す前に必ず確認してください。.selectable()

于 2010-11-18T13:43:51.157 に答える
5

コードを更新しました。このURLを見てください。

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

その間、ID属性を追加しました

  • あなたがそれをより細かく制御できるようにアイテム。

  • 于 2011-09-07T09:44:08.500 に答える
    4

    この答えを見つけた後、選択可能なイベントハンドラーで返されたオブジェクトのoriginalEventプロパティを使用して、プロパティをtrueに設定できることに気付きました。eventstartctrlKey

    そのようです:

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

    ワーキングフィドル

    于 2015-06-02T13:23:10.837 に答える