2016-11-27 7 views
0

jquery関数を記述したいのは、コードを何度も何度も書く必要があるからです。ここでjQuery関数を適切に定義する方法

は、関数が最初だったワットです:

$(".checkbox-car").click(function(){ 
      $(this).toggleClass('checked-car') 
     }); 

     $(".checkbox-bus").click(function(){ 
      $(this).toggleClass('checked-bus') 
     }); 

そして、これは私が私自身の機能を実行しようとしましたものです:

$.fn.checkedFunction = function(Clicked, Checked){ 
     $(this).click(function(){ 
      console.log('check'); 
      $(Clicked).toggleClass(Checked); 
     }); 
    } 

    $('.checkbox-car').checkedFunction('.checkbox-car','.checked-car'); 

しかし、私はcheckedFunctionが定義されていないというエラーが出ます。

ここで間違っているのは、誰かが私を助けることができますか?

+1

あなたのコードがほぼ完全に冗長なようです第二にチェックインクラスの前にドットを削除する - あなただけの既存の '.toggleClass()'メソッドをラップしています特別な機能を追加する必要がありません。 –

+0

[関数をjQuery.fnプロトタイプにバインドする方法](https://api.jquery.com/jquery.fn.extend/)を見てください。 –

答えて

1

checkedFunctionが定義されていないというエラーが表示されます。 checkedFunctionは、$.fnオブジェクトで定義されているプロパティです。

作成した関数を使用するには、 $(".some-element").checkedFunction(...args)を実行する必要があります。

以上、jQueryドキュメントを読む必要があります。

+0

私の投稿を編集してください。 – Sreinieren

+0

Clicked paramを削除してください。 "this"は選択されたjQuery要素です。 –

0

はちょうどこの操作を行う必要がありました:

$.fn.checkedFunction = function(Clicked, Checked){ 
     $(this).click(function(){ 
      $(Clicked).toggleClass(Checked); 
     }); 
    } 

    $('.checkbox-car').checkedFunction('.checkbox-car','checked-car'); 
    $('.checkbox-bus').checkedFunction('.checkbox-bus','checked-bus'); 

関連する問題