2017-02-10 70 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