7

私の場合、JQuery UI Selectableプラグインを適用した UL を持っていますが、同時に、ウィッチがバインドされたアイテムがこのアイテムを使用selectable pluginしたときに何かをしていdouble clickたようですJQuery UI Selectable plugin had block the dblclick event。それで、どうすればそれを機能させることができますか?

例えば:

<script>
    $(function() {
        $( "#selectable" ).selectable();

                $( "#selectable" ).dblclick(function(){
                    // do something here
                })
    });
    </script>

<ul id="selectable">
    <li class="ui-widget-content">Item 1</li>
    <li class="ui-widget-content">Item 2</li>
    <li class="ui-widget-content">Item 3</li>
    <li class="ui-widget-content">Item 4</li>
    <li class="ui-widget-content">Item 5</li>
    <li class="ui-widget-content">Item 6</li>
    <li class="ui-widget-content">Item 7</li>
</ul>

どうもありがとうございました!!

4

6 に答える 6

17

.ui-selectedを追加して、selectableメソッドに渡されたオプションをキャンセルする場合は、b / cをダブルクリックしても、.ui-selectedアイテムの選択イベントは発生しません。

$('#selectable').selectable({ 
  cancel: '.ui-selected' 
});

ただし、これにより、選択したアイテムの選択を解除する機能が失われます。次の手順を実行して、手動で選択を解除できます

$('.ui-selected').on('click', function() {
  $(this)
    .removeClass('ui-selected')
    .parents('.ui-selectable')
    .trigger('selectablestop');

  // you might also want to trigger selectablestop.
});
于 2011-10-26T19:28:55.220 に答える
6

クリックとダブルクリックを登録するには、距離を 0 より大きい数値に設定するだけです。

$("#selectable").selectable({
    distance: 1
});

http://forum.jquery.com/topic/selectable-dosn-t-fire-click-eventを参照してください

于 2012-11-20T15:23:52.073 に答える
3
$("#selectable li").mousedown(function(event) {
    if(event.which==1)
    {
        if($(event.currentTarget).data('oneclck')==1)
        {
            alert('click');

            return false;
        }
        else
        {
            $(this).data('oneclck', 1);
            setTimeout(function(){
                $(event.currentTarget).data('oneclck', 0);
            }, 200);
        }
    }
});
于 2011-03-25T21:42:43.270 に答える
0

私はこれを使用していますが、これが最良の解決策だと思います。

$("ul").selectable({
    filter: "li"
});

$("ul").on("mousedown","li",function(e){
    var n = ($(e.toElement).is(".ui-selected")) ? 1 : 0;
    $("#filelist").selectable( "option", "distance", n );
});

ユーザーが選択した要素のクリックを開始するとdistance、ダブルクリック イベントをブロックしないように を 1 に設定しますが、ユーザーが実際に選択を開始した場合は使用できます。

于 2014-02-16T12:09:16.333 に答える
0

これは、onmousedown が選択イベント (複数の選択可能な要素を選択する点線の div) をトリガーするためです。同じ問題があり、JQUERY UI ライブラリに数行のコードを追加して修正しました。あなたがしなければならないことは、マウスが数ピクセル移動した後に選択イベントを開始して遅延させることです。これにより、要素をダブルクリックしても、ユーザーフレンドリーな選択が可能になります! :D

これは、選択を遅らせて問題を解決するコードの一部です。

<script>
    var content = $('#content').selectable();

    var _mouseStart = content.data('selectable')['_mouseStart'];

    content.data('selectable')['_mouseStart'] = function(e) {
        _mouseStart.call(this, e);
        this.helper.css({
            "top": -1,
            "left": -1
        });
    };
</script>

この回避策はこの投稿で見つけました

于 2013-09-25T18:30:30.663 に答える
-6

jQuery では、次のようにイベントをリンクできます。

$( "#selectable" ).selectable().dblclick();

どちらのイベントもクリックイベントであるため、これが機能するかどうかはわかりません。

于 2011-02-27T16:07:26.433 に答える