jQuery - 声明函数内部的变量暂停解析

问题描述:

我遇到了一个我找不出来的错误。在函数中声明变量会导致脚本的其余部分不能执行。采取下面的工作示例: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

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

变量input未定义。您可以把值赋给input,如:

var input = 1; 

或使用其他变量的计算,如opt

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

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