这是问题所在。我正在回收收到MVC
部分页面的服务器。它一直很好用,它称之为成功功能。但是,我正在调用一个函数,之后迭代特定的元素:
$(".tool-fields.in div.collapse, .common-fields div.collapse").each(...)
在这里,我正在检查一个特定的属性(使用数据的自定义属性),这也很好用;然而;迭代器永远不会完成。没有给出错误消息,程序没有阻止。它就退出了。
这是迭代器的函数
function HideShow() {
$(".tool-fields.in div.collapse, .common-fields div.collapse").each(function () {
if (IsDataYesNoHide(this)) {
$(this).collapse("show");
}
else
$(this).collapse("hide");
});
alert("test");
}
以下是调用的函数,“ IsDataYesNoHide ”:
function IsDataYesNoHide(element) {
var $element = $(element);
var datayesnohide = $element.attr("data-yes-no-hide");
if (datayesnohide !== undefined) {
var array = datayesnohide.split(";");
var returnAnswer = true;
for (var i in array) {
var answer = array[i].split("=")[1];
returnAnswer = returnAnswer && (answer.toLowerCase() === "true");
}
return returnAnswer;
}
else {
return false;
}
}
这是属性出现的方式
data-yes-no-hide="pKanban_Val=true;pTwoBoxSystem_Val=true;"
编辑:每个请求,这里是jquery $ .post
$.post(path + conPath + '/GrabDetails', $.param({ data: dataArr }, true), function (data) {
ToggleLoader(false); //Page load finished so the spinner should stop
if (data !== "") { //if we got anything back of if there wasn't a ghost record
$container.find(".container").first().append(data); //add the content
var $changes = $("#Changes"); //grab the changes
var $details = $("#details"); //grab the current
SplitPage($container, $details, $changes); //Just CSS changes
MoveApproveReject($changes); //Moves buttons to the left of the screen
MarkAsDifferent($changes, $details) //Adds the data- attribute and colors differences
}
else {
$(".Details .modal-content").removeClass("extra-wide"); //Normal page
$(".Details input[type=radio]").each(function () {
CheckOptionalFields(this);
});
}
HideShow(); //Hide or show fields by business logic
});
有一段时间,我认为jquery崩溃正在崩溃,但是简单的alert('test')
向我展示了发生了什么。它只是永远不会完成。
是否有特定的时间长度可以从jquery回发调用回调函数?我正在加载模态视图中的所有内容,这表示“哦,也许jquery被包含两次”,但我已经遇到了其他问题,并确保它只包含一次。因为include在整个应用程序中只有一次,并且布局仅应用于主页面。
我对任何可能性持开放态度。
谢谢!
〜布兰登