0

我正在使用 Knockout.js 将项目添加到下拉列表中的无序列表中。我想捕获对这些列表项的点击,但我不知道该怎么做。

我认为现在该列表正在被正文单击(隐藏所有下拉菜单)取消,但在单击时添加 e.stopPropagation() 甚至似乎都不起作用。

这是下面的代码片段(为了可读性而隔开......但这种方式无效),您可以在此处看到正在运行的搜索栏(带有完整代码)。

$("#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 回答