view source

JavaScript

/*
メリット:
click()以外のイベントをエミュレートできる。
AngularJSやReactで生成されたページにも有効。
document.querySelectorAll() からの複雑な記述でforEachする必要がない。
*/

jQuery.fn.dispatchEvent = function(evType){
  var ev = new Event(evType, {bubbles: true});
  $(this).each(function(){
    $(this)[0].dispatchEvent(ev);
  });
}

const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));

$(function(){
  var count = 0;
  $('button').on('mousedown', function(){
    count++;
    $(this).text(count);
  });
  $('button').on('dblclick', function(){
    count--;
    $(this).text(count);
  });

  (async () => {
    await sleep(3000);
    console.log('start');
    const a = [1,2,3,4,5,6,7,8];
    for(let i of a){
      console.log(i);
      $('button').dispatchEvent('mousedown');
      await sleep(1000);
    }
    console.log('end');

    console.log('restart');
    for(let i of a){
      console.log(i);
      $('button').dispatchEvent('dblclick');
      await sleep(1000);
    }

  })();
});

CSS

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-dispatchEvent-for-jQuery/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。