0
我發現一些代碼,使我獲得URL查詢字符串事件觸發時,它不應該
var QueryURL = function() {
var query_url = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if (typeof query_url[pair[0]] === "undefined") {
query_url[pair[0]] = decodeURIComponent(pair[1]);
} else if (typeof query_url[pair[0]] === "string") {
var arr = [ query_url[pair[0]],decodeURIComponent(pair[1]) ];
query_url[pair[0]] = arr;
} else {
query_url[pair[0]].push(decodeURIComponent(pair[1]));
}
}
return query_url;
}();
上面的代碼完美的作品。但是我還是不太明白。我正在做以下
$(".search").click(function(e) {
console.log(QueryURL.someID); //outputs undefined
if(QueryURL.someID !== "undefined") {
$.ajax({
url: "someurl",
type: "POST",
success: function (data) {
console.log(data)
},
error: function(xhr, ajaxOptions, thrownError){
}
});
}
});
因此,如果我不提供帶有查詢someID的URL,那麼它不應該執行Ajax調用。現在控制檯日誌記錄輸出沒有定義,我也期望它。然而,由於某種原因,它仍然是射擊,即使我有應該阻止這種情況發生的條件Ajax請求。
爲什麼它仍然使Ajax請求,如果QueryURL.someID
是不確定的?
感謝
完美,所以QueryURL返回一個叫做不確定,而不是一個字符串變量? –
'QueryURL'正在返回的對象和'someID'是其性質。如果沒有設置屬性'someID',則返回值undefined。 – barbsan