2014-09-30 65 views
0

我遇到了一個我找不出來的錯誤。在函數中聲明變量會導致腳本的其餘部分不能執行。採取下面的工作示例:jQuery - 聲明函數內部的變量暫停解析

http://jsfiddle.net/nkcokmaq/1/

但是,如果我補充一下:

var square_size = $('#grid_container').width()/input - 2; 

下:

var makeGrid = function(opt){ 
    if (opt >= 1 && opt <= 128){ 
     ... 

的條件,如果函數makeGrid將不會執行下語句(但else語句仍然會) - 如下面的jsfiddle:

http://jsfiddle.net/nkcokmaq/2/

任何指針?

+4

'$( '#grid_container') .width()/ input - 2;'從這裏,'input'來自哪裏? – 2014-09-30 14:17:05

+1

輸入未定義,並且您的鏈接的非工作小提琴不包含jQuery,但嘗試使用。控制檯ftw。 – Bic 2014-09-30 14:21:43

回答

0

Here是你工作的第一個例子。有js錯誤阻止了它的執行。

從你的按鈕刪除onclick處理

<button id="b1">Black</button> 
<button id="b2">Multicoloured</button> 

添加jQuery的鏈接,並添加點擊處理。

$("#b1").click(function(e){clickButton(1)}); 
$("#b2").click(function(e){clickButton(2)}); 

和第二個小提琴一樣。添加jq支持,在makeGrid函數中定義您的input變量。

+0

感謝您的答案 - 菜鳥錯誤... – Rhodiola 2014-09-30 14:48:02

0

變量input未定義。您可以把值賦給input,如:

var input = 1; 

或使用其他變量的計算,如opt

var square_size = $('#gridContainer').width()/opt - 2; 

http://jsfiddle.net/nkcokmaq/3/

相關問題