2017-02-10 71 views
0

我使用的是從https://github.com/rpheath/searchbox的jQuery實時搜索。 我在一個頁面中找到了多個搜索框。我想要的是將參數param傳遞給jquery匿名函數,以便將設置'定向到不同的url。傳遞自定義惱人的jQuery函數的參數

$('#input1').searchbox("action1"); 
$('#input2').searchbox("action2"); 

我試圖修改這樣的代碼,但param總是返回undefined。什麼是修改代碼的正確方法?

的JS代碼:

(function($, param) { 
$.searchbox = {} 

$.extend(true, $.searchbox, { 
settings: { 
    url: '/Home/'+param, 
    param: 'searchString', 
    dom_id: '#'+param, 
    delay: 100, 
    loading_css: '#loading' 
}, 

loading: function() { 
    $($.searchbox.settings.loading_css).show() 
}, 

// other codes omitted 

})(jQuery); 
+0

你是不是想通過' param'作爲一個單獨的參數連接到'url'? – guest271314

+0

@ guest271314是的,這就是我想要做的! – Matt

+0

@Matt,它不會工作。你必須改變插件的邏輯。它爲所有搜索框使用單個*(全局)*設置。因此,每個搜索框的網址更改都將應用於所有搜索框。 – Thomas

回答

0

沒有嘗試過的插件,但你應該能夠在線路51和源52修改預期的參數

$.fn.searchbox = function(config, param) { 
    var settings = $.extend(true, $.searchbox.settings, config || {}); 
    if (param) settings.url = settings.url + param; 
+0

這將修改所有搜索框的'$ .searchbox.settings.url'。這個插件基本上是一個單身人士。 – Thomas

+0

@Thomas還沒有試過插件。不確定插件實際執行的操作。插件執行什麼操作?如果是這種情況,並且如果有必要的話,會建議OP重新編寫整個插件來創建一個不會修改所有插件實例的模式。 – guest271314

+0

@ guest271314無論如何,我正在嘗試你的想法,但'param'仍然未定義。 '$('#input1')。searchbox(「action1」);'這是將參數傳遞給函數的正確方法嗎? – Matt