0

私はjqueryを初めて使用し、jqueryを使用してすべてのクリックイベント(特定のdiv内の要素)をダブルクリックイベントに変更できるかどうか疑問に思っていましたか? よろしくお願いします。

function isTouchDevice(){
  return (typeof(window.ontouchstart) != 'undefined') ? true : false;
}
if(isTouchDevice()===true){
     //change click events to doubleclick events
}
4

3 に答える 3

4

この魔法を見てください:

$('*').each(function(){
   var click = $(this).data('events').click;
   if(click[0]) { //check if there is a click handler attached 
       $(this).on('dblclick', click[0].handler).off('click');
   }
});

上記は、ページ上のすべての要素を調べて、そのクリックハンドラーをそのdblclickハンドラーに移動します。

通常、使用する*ことはお勧めしません。代わりに、クリックセレクターがあるすべての要素を選択して、それらを調べてみます。

于 2012-12-24T15:51:58.560 に答える
0

確かに...

function yourClickHandler(event) {
    // here you can check for click or dblclick as so...
    if (event.type == 'dblclick') { /* handle dblclick specific stuff */ }
    else if (event.type == 'click') { /* handle normal click specific stuff */ }
}

$(document).ready(function() {
    if (isTouchDevice()) {
        $('div#SPECIFIC_DIV *').on('dblclick', yourClickHandler);
    }
    else {
        $('div#SPECIFIC_DIV *').on('click', yourClickHandler);
    }
});
于 2012-12-24T15:51:41.087 に答える
-1

これを試して:

$('#target').click(function() {
    if(isTouchDevice == true) {
      $('#target').dblclick();
    }
});
于 2012-12-24T15:53:58.573 に答える