jQuery [Callbacks] コンテキストを指定してCallbacksオブジェクトを実行する

callbacks.fire()メソッドと似ていますが、引数として「コンテキスト」を渡せる点が異なります。コンテキストとして渡された要素は、Callbacksオブジェクトに登録された各コールバック関数の中で「this」で参照できます。fireWidth()の第2引数は配列またはオブジェクトで渡す必要があります。

書式

callbacks.fireWith(コンテキスト,引数)
callbacks.fireWith( $('#mydiv'), str );

サンプル

コールバック関数をコンテキストを指定して実行する

<body>
    <div class="main">
      <div class="header">
        <h1>サンプル</h1>
      </div>
      <div class="content">
        <form>
          <button class="button" type="button" name="button1">コールバック関数をadd</button>
          <button class="button" type="button" name="button2">Callbacksを関数を実行</button>
        </form>
        <div class="desc"></div>
      </div>
      <div class="footer">
        <hr>
        <p class="copyright">2024 xxxx all rights reserved.</p>
      </div>
    </div>
    <script>
      $(document).ready(function(){
       var callbacks = $.Callbacks();
       var myfunc1 = function(str){
        this.append(str + '<br>');
       }
       $('button[name=button1]').on('click',function(){
        callbacks.add(myfunc1);
        $('.desc').append('コールバックが追加されました<br>');
       });
       $('button[name=button2]').on('click',function(){
        callbacks.fireWith($('.desc'),['実行されました']);
       });
      });
      </script>
    </body>
実行結果
コールバック関数をaddボタンをクリック
実行結果
Callbacksを関数を実行ボタンをクリック