在我的生活中,我从未见过,我的条件不想工作,这是我的JavaScript代码:
//Remove todos os elementos relacionados a frete
function removeAllFrete(callback){
var a = $(".remove-frete").length;
for (i = 0; i < a; ++i) {
$(".remove-frete").each(function(){
$(this).animate({
opacity: 0
}, function(){
$(this).slideUp(function(){
$(this).remove();
});
});
if ( i == a - 1 && typeof(callback) === "function" ){
return(callback());
}
});
}
}
//Exibe o formulário de busca de CEP
function buscarCEP(msg, callback){
function showSearchForm(){
el = $("<div class=\"frete-form remove-frete\"><div class=\"form-group no-margin-last\"><input type=\"text\" class=\"text-input\" placeholder=\"Endereço\"><input type=\"text\" class=\"text-input\" placeholder=\"Cidade\"><input type=\"text\" class=\"text-input\" placeholder=\"Estado\"><input id=\"frete-search-trigger\" type=\"submit\" class=\"submit-input\" value=\"Pesquisar\"></div></div>")
$(".frete-cont").append(el);
el.slideDown(function(){
$(this).animate({
opacity: 1
}, function(){
$("#frete-search-trigger").on("click", function(e){
e.preventDefault();
removeAllFrete();
});
});
});
}
if ( msg != null){
var elR = $("<div class=\"frete-no-result remove-frete\">" + msg + "</div>");
$(".frete-cont").append(elR);
elR.slideDown(function(){
$(this).animate({
opacity: 1
}, function(){
showSearchForm();
});
});
} else{
showSearchForm();
}
}
$("#frete-forget-trigger").on("click", function(e){
e.preventDefault();
console.log("a");
if( $(".frete-form").length ){
console.log("1");
removeAllFrete();
} else{
removeAllFrete(function(){
console.log("2");
buscarCEP(null);
});
}
});
在这里你可以找到一个小提琴:http://jsfiddle.net/5hjhxm09/
知道可能是什么?
我的错误,请查看下面的答案......
在这里你可以找到一个小提琴:http://jsfiddle.net/5hjhxm09/4/
答案 0 :(得分:0)
问题不在条件中,而是在for循环中:
$(".remove-frete").length === 0
答案 1 :(得分:0)
click $("#frete-forget-trigger")
然后
console.log("a");
// $(".frete-form").length =0
然后运行
removeAllFrete(function(){
console.log("2");
buscarCEP(null);
});
}
然后运行removeAllFrete
var a = $(".remove-frete").length;
// a = 0
for (i = 0; i < a; ++i) {
...
}
END
一切正常,点击并安装
答案 2 :(得分:0)
问题出在removeAllFrete()
函数内的条件中:
if ( i == a - 1 && typeof(callback) === "function" ){
return(callback());
}
当我更改以下条件的触发器时,它正常工作:
$("#frete-forget-trigger").on("click", function(e){
e.preventDefault();
console.log("a");
if( $(".remove-frete").length ){
console.log("1");
removeAllFrete();
} else{
console.log("2");
buscarCEP(null);
}
});