我试图创建一个返回变量的函数。返回的变量我想在第二个函数中使用。jQuery创建变量以在其他函数中使用
我真的不能看到我在做什么错在这里:
因此,我所做的是:
function setSearchUrl(searchUrl){
var $select = $('.navbar-form.navbar-search select');
$select.on('change', function(){
searchUrl = $(this).find('option:selected').val();
$(this).closest('form').attr("action", searchUrl);
});
return searchUrl;
}
function liveSearch() {
var e = $(".navbar-search input").val(),
query = e.replace("/", "-slash-"),
url = setSearchUrl(searchUrl) +'/?search=' + query + "&format=json"
$.getJSON(url, function(e) {
// etc etc etc ....
}
$(function() {
var searchUrl;
setSearchUrl()
});
这将返回一个空searchUrl
。 我在做什么错?
任何帮助非常感谢!
什么你正在试图做的并没有真正意义。只有在选择选项被更改后才会确定网址。你必须在“更改”处理程序中执行搜索*。 – Pointy
如果你从函数存储中返回一个值,那么它就是一个可变参数,例如:var x = setSearchUrl();所以你可以进一步使用它作为参数传递给liveSearch(x) –
@Pointy:那就是这个想法。当有人输入一个搜索词,然后选择一个类别(通过select),那么应该有一个基于这些值创建的url字符串。这个'liveSearch()'根据这个url执行实际的搜索。否则,即使我们不想要,每次都会触发搜索。或者我不明白你的答案是否正确? – Meules