2013-01-15 39 views
0

我最近發現Resig的jQuery rewrite of a Quicksilver Live Search,並喜歡它的工作原理......但我試圖更新它以使用新的.on()事件處理程序。然而,我的能力(或缺乏)使我失敗。Resig的Live Search for jQuery 1.7及以上版本?

我想我需要編輯「this.keyup(filter)...」但我沒有什麼工作。有任何想法嗎?

更新:只是澄清一點。我想要更新腳本的想法是接受動態引入的列表項。只要它是一個靜態列表,一切都可以正常工作,但由於我已經引入了通過ajax調用創建的列表,因此無法工作。我會模擬一個小提琴並很快將其鏈接到這裏。與此同時,如果任何人都可以幫助我,它會拯救我的皮。謝謝。

jQuery.fn.liveUpdate = function(list){ 
    list = jQuery(list); 

    if (list.length) { 
    var rows = list.children('li'), 
     cache = rows.map(function(){ 
     //return this.innerHTML.toLowerCase(); 
     return $('a', this)[0].innerHTML.toLowerCase(); 
     }); 

    this 
     .keyup(filter).keyup() 
     .parents('form').submit(function(){ 
      return false; 
     }); 

    } 

    return this; 

    function filter(){ 
     var term = jQuery.trim(jQuery(this).val().toLowerCase()), scores = []; 

     if (!term) { 
      rows.show(); 
     } else { 
      rows.hide(); 

      cache.each(function(i){ 
       var score = this.score(term); 
       if (score > 0) { scores.push([score, i]); } 
      }); 

      jQuery.each(scores.sort(function(a, b){return b[0] - a[0];}), function(){ 
       jQuery(rows[ this[1] ]).show(); 
      }); 
     } 
    } 
}; 

回答

0

所以,一個偶然的機會我碰到this post跑到哪,與jfk協助下,幾乎總結了一下,我一直在尋找。我想讓腳本在動態內容創建之後運行,當我想要做的事情是在用戶想要搜索時調用腳本。

$('#staticParent').on("click", "#searchField", function(){ 
    $(this).livesearch("#dynamicElements").focus(); 
}); 

從使這個更好更先進的開發者任何額外的信息,我所有的耳朵。我希望有一天可以幫助另一個人。 :)