2016-09-27 10 views
0

関数ではありません私は2つのものがあるテーブルがあります:行レベルe.stopPropagationは()ノックアウトJSに

Clickイベントを、その行の内側にあるチェックボックスをチェックしながらクリックしてください。

そして、チェックボックスがオンになっていると、私はtrのClickイベントを発生させたくありません。

<tbody data-bind="foreach:CustomerList"> 
     <tr onclick="removepage();" onmouseover="changeRowColor(this)" onmouseout="restoreRowColor(this)"> 

      <td> 
       <input class="checkbox" data-bind="click:$parent.customerClick(event)" type="checkbox"> 

      </td> 
      <td class="col-md-4"> 
       <span class="name" data-bind="text:customerName" /> 

      </td> 
      <td> 
       <span data-bind="text:siteName" /> 
      </td> 

     </tr> 
    </tbody> 

customerClick();私は同じことを達成しようとした。

customerClick: function (e) { 
     debugger; 
     e.stopPropagation(); 
    }, 

しかし、動作しませんでした。

と言われていますが、e.stopPropagation();は機能しません。

どうすればいいか教えてください。

+0

'stopPropagation'がjQuery関数で、イベントをノックアウトにバインドすると、何が期待されますか? – eisbehr

+0

@eisbehr Oh My Bad。それでは、どのようにして目的の機能を達成するのか。 – StrugglingCoder

+0

KnockoutJSの文書(http://knockoutjs.com/documentation/click-binding.html)によると、イベントabjectは、クリック処理機能の第2パラメータとして渡されます。 – TSV

答えて

2

ノックアウトは、そのような機会のためのバインディングが付属しています - clickBubble

<input class="checkbox" data-bind="click:$parent.customerClick(event), clickBubble: false" type="checkbox"> 

あなたinputfalseにそれを設定するツリーまでさらにハンドラに到達するのクリックイベントを防ぐことができます。

+0

ラブリー。しかし、まだチェックボックスだけをチェックする必要があります。それは起こっていない。 – StrugglingCoder

+1

これは別の問題のようです。おそらく、自分でクリックを処理しようとするのではなく、['checked'バインディング](http://knockoutjs.com/documentation/checked-binding.html)を調べるべきでしょう。 –

関連する問題