以下のコードに問題があります。私はそのサイトで検索を実行し、葉巻はありませんでした。
.callappに添付されているアイテムをクリックすると、次のようになります。
- $ jQuery.load getURL(xapp)から受け取ったURLを含むコンテンツセクション
- ステータスに関係なく、「requesthandler」を実行します
- リクエストが成功した場合、「requesthandler」がonSuccessを使用して実行します
「requesthandler」に渡した無名関数の実行方法がわかりません。渡したパラメータを使用して「loadURL」関数を実行するには、この無名関数が必要です。これにより、この投稿に関係のない別の一連のイベントがスパイクされます。
ありがとう!
var url = "";
var tab = "";
var app = "base";
var out = "";
$(document).ready(function() {
$(".callapp").click(function(e) {
e.preventDefault();
$('#wxreturn').html("<div id='xtools'></div><div id='xerror'></div><div id='xdapps'></div>");
hideContent(1, 1);
$('#xdapps').load( getURL("base"), function(resp, stat, xhr) {
requesthandler(iStat, iXHR, 0, 0, 0, 0, function() {
loadURL("tools", "xtools", 1, 1, 1, 1);
});
});
return 0;
});
});
// piece together a url
function getURL(xapp) {
// url to return
var url = null;
// global tab must not be empty
if (tab.length) {
// check if app is defined
if (!xapp.length) {
// app is either the global or base
xapp = app | "base";
} else {
// set the global
if (!(xapp == "tools") && !(xapp == "options")) app = xapp;
}
// set the url to return
url = "/" + tab.toLowerCase() + "/" + xapp.toLowerCase() + "?_=" + Math.random();
} else {
// undefined functionality error
alert("Invalid getURL...Tab Missing");
}
// return the url
return url;
}
// load a url
function loadURL(xapp, target, showApp, showOpt, showTools, clearTools) {
// defaults
showApp = showApp | 0;
showOpt = showOpt | 0;
showTools = showTools | 0;
clearTools = clearTools | 0;
// do only if app and target are defined
if (!(xapp == undefined) && !(target == undefined)) {
// set target
if (!(target.contains("#"))) target = "#" + target;
// get url string
var url = getURL(xapp);
// check if null
if (!(url == null)) {
// commence with load
$(target).load(url, function(resp, stat, xhr) {
// call back with the request handler
requesthandler(stat, xhr, showApp, showOpt, showTools, clearTools);
});
}
} else {
// undefined functionality error
alert("Invalid LoadURL...Missing App...Target");
}
}
// request handler
function requesthandler(stat, xhr, showApp, showOpt, showTools, clearTools, onSuccess) {
// defaults
showApp = showApp | 0;
showOpt = showOpt | 0;
showTools = showTools | 0;
clearTools = clearTools | 0;
onSuccess = onSuccess | null;
// check for status
if (stat == "success") {
// execute
if (!(onSuccess == null)) {
// perform function
(onSuccess());
}
} else {
if (xhr.status == 401) {
// throw session expired
sessionTimeOut();
} else if (xhr.status == 403) {
// throw authorization failure
failedAuthorize();
} else {
// throw application request failure
failedAPPRequest(clearTools);
}
}
}