我有一个对话框执行依赖于三个输入字段的计算.当它们中的任何一个被更改时,它会检查它们是否全部被填充,如果它们是进程并给出它的响应.
它在FF,Chrome,Opera等中运行得非常好,但在任何版本的IE中它都会停止工作.我的其余jQuery工作正常,但我无法确切地解决问题所在.我认为它可能与.change()事件或多事件绑定有关,但我真的不知道.
这是有问题的代码:
var loan = $("#ltv-loan-amount");
var mortgage = $("#ltv-mortgage");
var property = $("#ltv-property");
$("#ltv-dialog input").change( function() {
if(loan.val() && mortgage.val() && property.val())
{
var ltv = parseInt( ( ( parseInt(loan.val()) + parseInt(mortgage.val()) ) / parseInt(property.val()) )* 1000 );
ltv /= 10;
if(ltv > 0 && ltv < 85)
{
$("#ltv-result").html("<span id=\"ltv-form-result\">" + ltv + "%</span></p><p><a id=\"ltv-link\" href=\"#sidebar-head\">Congratulations, your LTV has passed. Please now proceed with your application opposite.</a>");
$("#amount").val(loan.val());
$("#mortgage_balance").val(mortgage.val());
$("#prop_value").val(property.val());
$("#ltv-link").click(function() {
$( "#ltv-dialog" ).dialog( "close" ); …Run Code Online (Sandbox Code Playgroud) 我有一些奇怪的问题与一些JavaScript.在下面的代码中,浏览器将在if,else if,else if条件中执行多个路径.因此,例如控制台将记录"a c"或"b c".
if (divs[i].row == hover_div.row && divs[i].obj != hover_div.obj)
{
console.log("a");
divs[i].obj.stop()
.animate({'width':d_thin}, { duration:600, queue:false })
.animate({'height':d_expand}, { duration:600, queue:false });
}
else if (divs[i].col == hover_div.col && divs[i].obj != hover_div.obj)
{
console.log("b");
divs[i].obj.stop()
.animate({'width':d_expand}, { duration:600, queue:false })
.animate({'height':d_thin}, { duration:600, queue:false });
}
else if (divs[i].obj != hover_div.obj);
{
console.log("c");
divs[i].obj.stop()
.animate({'width':d_thin}, { duration:600, queue:false })
.animate({'height':d_thin}, { duration:600, queue:false });
}
Run Code Online (Sandbox Code Playgroud)
我已经通过在块外添加一个计数器来检查代码没有执行两次.如果我将if语句嵌套在下面,那么整个工作正常,但我不应该需要吗?
if (divs[i].row == hover_div.row && divs[i].obj != hover_div.obj)
{
console.log("a"); …Run Code Online (Sandbox Code Playgroud)