Knockoutjs-click-binding
KnockoutJS-バインドをクリック
クリックバインディングは最も単純なバインディングの1つであり、クリックに基づいてDOM要素に関連付けられたJavaScript関数を呼び出すために使用されます。 このバインディングは、イベントハンドラーのように機能します。
これは、 button 、 input 、および a などの要素で最も一般的に使用されますが、実際には表示されているすべてのDOM要素で機能します。
構文
パラメーター
ここでのパラメーターは、クリックに基づいて呼び出す必要があるJavaScript関数です。 これは任意の関数にすることができ、ViewModel関数である必要はありません。
例
クリックバインディングの使用方法を示す次の例を見てみましょう。
出力
上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-
- 上記のコードを click-bind ファイルに保存します。
- このHTMLファイルをブラウザーで開きます。
- [ここをクリック]ボタンをクリックすると、画面にメッセージが表示されます。
観察
現在のアイテムもパラメータとして渡すことができます
ハンドラー関数が呼び出されるときに、パラメーターとして現在のモデル値を提供することもできます。 これは、一連のアイテムで同じアクションを実行する必要があるデータのコレクションを扱う場合に役立ちます。
例
よりよく理解するために、次の例を見てみましょう。
出力
上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-
- 上記のコードを click-for-current-item ファイルに保存します。
- このHTMLファイルをブラウザーで開きます。
- removeProduct 関数は、Removeリンクがクリックされるたびに呼び出され、配列内の特定のアイテムに対して呼び出されます。
- ハンドラー関数に到達するために、$ parentバインディングコンテキストが使用されることに注意してください。
より多くのパラメーターを渡す
DOMイベントと現在のモデル値をハンドラー関数に渡すこともできます。
例
よりよく理解するために、次の例を見てみましょう。
出力
上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-
- 上記のコードを click-bind-more-params ファイルに保存します。
- このHTMLファイルをブラウザーで開きます。
- コントロールキーを押すと、このバインドによってキャプチャされます。
デフォルトのクリックアクションを許可する
KnockoutJSは、クリックイベントがデフォルトでデフォルトアクションを実行するのを防ぎます。 つまり、 <a> タグでクリックバインディングが使用されている場合、ブラウザはハンドラー関数を呼び出すだけであり、実際にはhrefに記載されているリンクに移動しません。
クリックバインディングでデフォルトのアクションを実行する場合は、ハンドラー関数からtrueを返すだけです。
例
クリックバインディングによって実行されるデフォルトのアクションを示す次の例を見てみましょう。
出力
上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-
- 上記のコードを click-default-bind ファイルに保存します。
- このHTMLファイルをブラウザーで開きます。
- リンクをクリックすると、画面にメッセージが表示されます。 hrefに記載されているURLが新しいウィンドウで開きます。
イベントがバブリングするのを防ぐ
KOは、クリックイベントが上位レベルのイベントハンドラーにバブルすることを許可します。 2つのクリックイベントがネストされている場合、両方のクリックハンドラー関数が呼び出されます。 必要に応じて、clickBubbleと呼ばれる追加のバインディングを追加し、それにfalse値を渡すことにより、このバブリングを防止できます。
例
clickBubbleバインディングの使用方法を示す次の例を見てみましょう。
出力
上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-
- 上記のコードを click-cllickbubble-bind ファイルに保存します。
- このHTMLファイルをブラウザーで開きます。
- ボタンをクリックして、値falseのclickBubbleバインディングを追加すると、イベントがinnerFunctionを通過できなくなることを確認します。