2015-06-27 17 views
0

我有以下JavaScript代碼,如果在底部的jQuery函數外部調用,則運行良好。我不知道我做錯了什麼。jQuery中的調用函數返回錯誤的結果

Bresenham算法:

function bresenham(x0,y0,x1,y1){ 
    var bresenham = []; 

    var x = 0; 
    var dx = x1-x0; 
    var dy = y1-y0; 

    var D = 2 * dy - dx; 
    bresenham.push(x0 + "," + y0); 
    var y = y0; 

    for (x = x0+1;x<=x1;x++){ 
     if (D>0){ 
      y = y+1; 
      bresenham.push(x + "," + y); 
      D = D + (2*dy - 2*dx); 
     } else { 
      bresenham.push(x + "," + y); 
      D = D + (2*dy); 
     } 
    } 
    return bresenham; 
}; 

JQuery的:

$(document).ready(function(){ 
    $(".button").click(function(){ 
     $("div#output p").remove(); 

     var x0 = $('input[name=x0]').val(); 
     var y0 = $('input[name=y0]').val(); 
     var x1 = $('input[name=x1]').val(); 
     var y1 = $('input[name=y1]').val(); 

     var bres = bresenham(x0,y0,x1,y1); 
     console.log(bres); 
    }); 
}); 

如果我輸入:x0 = 1, y = 0 and x1 = 15, y2 = 9

它輸出:["1,0", "11,01", "12,01", "13,011", "14,0111", "15,0111"]

+2

爲你設置了var jQuery的,加上parseInt函數($('輸入....)。VAL()) – depperm

+0

也'控制檯。記錄「輸入以準確查看傳遞給函數的內容。 – JCOC611

回答

2

我會改變

$(document).ready(function(){ 
    $(".button").click(function(){ 
     $("div#output p").remove(); 

     var x0 = $('input[name=x0]').val(); 
     var y0 = $('input[name=y0]').val(); 
     var x1 = $('input[name=x1]').val(); 
     var y1 = $('input[name=y1]').val(); 

     var bres = bresenham(x0,y0,x1,y1); 
     console.log(bres); 
    }); 
}); 

$(document).ready(function(){ 
    $(".button").click(function(){ 
     $("div#output p").remove(); 

     var x0 = parseInt($('input[name=x0]').val()); 
     var y0 = parseInt($('input[name=y0]').val()); 
     var x1 = parseInt($('input[name=x1]').val()); 
     var y1 = parseInt($('input[name=y1]').val()); 

     var bres = bresenham(x0,y0,x1,y1); 
     console.log(bres); 
    }); 
}); 
+0

謝謝!這工作。 :) –