2012-11-29 71 views
0

我正在使用Knockout.js將項目添加到下拉列表中的無序列表中。我想捕獲這些列表項上的點擊,但我不知道如何去做。設置動態列表項目的點擊功能(使用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>"); 

回答

0

嘗試委派事件 ..

而不是

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

做到這一點

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

'body'可以用任何靜態父容器進行更換..

+1

這似乎沒有工作:S – Jon