我試圖創建一個返回變量的函數。返回的變量我想在第二個函數中使用。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