0

Knockout.js を使用して、ドロップダウンの順序付けられていないリストに項目を追加しています。これらのリスト アイテムのクリックをキャプチャしたいのですが、その方法がわかりません。

現在、ボディクリック(すべてのドロップダウンを非表示にする)でリストが閉じられていると思いますが、クリックに e.stopPropagation() を追加しても機能していないようです。

以下にコードのスニペットを示します (読みやすいように間隔を空けていますが、その方法では無効です)。検索バーの動作を (完全なコードで) HEREで確認できます。

$("#dropdown").append("
   <ul id='list' data-bind=\"template: { 
         name:'obj', foreach:objects }, 
         click: function() {
               $('.listObjItem').on('click', function() {   
                     // CAPTURE THE CLICK (not working)          
                     alert($('#search').val($(this).text())); 
         });}
   \">
   </ul>");

$("#searchContainer").append(
      "<script type='text/html' id='obj'>
             <li class='listObjItem'>
                    <span data-bind='text: name'></span>&nbsp;in&nbsp;
                    <strong data-bind='text: type'></strong>
             </li>
       </script>");
4

1 に答える 1

0

イベントを委任してみてください..

それ以外の

$('.listObjItem').on('click', function() {

これを行う

$('body').on('click','.listObjItem' , function() { 

'body'任意の静的親コンテナーに置き換えることができます..

于 2012-11-29T18:08:34.543 に答える