2009-03-04 50 views
5

我使用Dylan Verheul,Dan G. Switzer,Anjesh Tuladhar,JörnZaefferer的jQuery自動完成1.0.2擴展。當自動完成控件中調用.show()和.hide()時,我試圖執行自己的回調函數。我還沒有找到任何方法來實際識別我的回調函數。如果任何人熟悉這種控制,並可以幫助我會非常感激。如何將自定義回調函數附加到jquery自動填充擴展?

回答

8

對不起,我沒有任何簡單的回答你的問題,我檢查了插件源代碼,並沒有找到任何機制讓你想要你想要的。我想你必須自己更新這個插件才能讓它按照你的意願工作。

想法是將您的回調添加到options參數,然後使插件使用這些回調。首先,你必須修改插件代碼。轉至創建,負責顯示/隱藏自動完成控制類的功能:

$.Autocompleter.Select = function (options, input, select, config) { 

如果向下滾動,你可以看到,這個函數返回一個對象與show()hide()方法。您可以添加以下代碼:

hide: function() { 
    ... 
    options.showCallback && options.showCallback(); // Invoke callback function if set 
}, 
... 
show: function() { 
    ... 
    options.hideCallback && options.hideCallback(); // Invoke callback function if set 
}, 

最後,當你創建你自動完成,你應該添加您的回調,以你的選擇:

$("#myTextBox").autocomplete("http://...", 
{ 
    showCallback : function() { /* do what you want here */ }, 
    hideCallback : function() { /* do what you want here */ } 
}); 

沒有測試所有,它只是一個快速和骯髒的解決方案。我希望這有幫助。

+0

感謝ybo,試試吧! – 2009-03-04 16:10:52

相關問題