2016-12-19 4 views
0

私はモバイルアプリケーション(jquery mobileを使用)で選択可能な作業をしようとしています。コントロールのmousedownを使って1つの追加を選択する(そして選択を解除する)と、すべてうまく動作します。jqueryの選択可能なマウスの選択を解除するmetakey

しかし、モバイルアプリのため、私はコントロールキーを使用できません。コントロールキーを処理するためにこのコードを追加しました。選択イベントを追加するように機能しますが、選択されたイベントの選択解除が解除されます。 (つまり、選択した項目をクリックすると選択解除されません)。また、私が話していたコードであるここで、これはしばらく後にハングアップし、イベントを処理する非常に遅くなり、何らかの理由...

のために:

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

コードの私のフルセットはjsfiddleである: http://jsfiddle.net/Y3TUj/38/

答えて

0

携帯電話の場合は、tapを選択して(metakeyの代わりに)選択を解除してください。

はこれを試してみてください:

$("#tableId").bind("tap", function(e) { 
     e.preventDefault(); 
     var el = e.target; 
     if ($(el).hasClass("ui-selected")) { 
      $(el).removeClass('ui-selected').addClass('ui-unselecting'); 
     } else { 
      $(el).addClass("ui-selecting"); 
     } 
     $("#tableId").data("ui-selectable")._mouseStop(null); 
    }); 

フィドル:http://jsfiddle.net/xw16e2ks/1/

+0

が応答をいただき、ありがとうございます。この問題は、タップが以前のすべての選択を解除することである。私はそれを設定しようとしています。その前の選択は、そのセルがmousedownされている場合にのみ選択解除されます... – user2040850

+0

@ user2040850:私の例を試しましたか? 'e.preventDefault();'はそれを避けるべきです。 – deblocker

+0

はい。デスクトップから、私が試したときに、2番目のセルをクリックすると前のセルの選択が解除され、選択したセルをクリックしてもそのセルは選択解除されませんでした。 – user2040850

関連する問題