1
我正在写一个简单的Web应用程序,并且遇到了各种各样的绊脚石 - 我已经找到了解决方法,但我想了解我是什么在浏览jQuery文档时做错了。将变量传递给onChange事件与jQuery .change()
我有一个功能,即从页面调用时,插入一个表格行:
var rowCount = 0;
function addRow(tbody){
$("#"+tbody).append(
$('<tr>').attr('id','row_'+rowCount).append(
$('<td>').append('Content'),
$('<td>').append($('<input>').addClass('text').attr('readOnly','readOnly')),
$('<td>').append($('<input>').addClass('text').attr('readOnly','readOnly')),
$('<td>').attr('id','barcode_cell'+rowCount),
$('<td>').append($('<input>').addClass('text').addClass('quantity').attr('maxLength',3)),
$('<td>').append($('<select>').change(function(){isMissing(this,rowCount)}))
)
);
}
在哪里我主要关心的是最终<select>
盒,它的onChange事件。我ISMISSING功能:
function isMissing(elem, counter){
alert(elem.value);
alert(counter);
}
会发生什么事是如预期,但该行数总是警报的最新行,无论哪个行叫它箱警报的设定值。相反,我希望它保存行引入时rowCount变量的值,而不是添加其他行后的变量的最新值。
我在做什么错?我如何强制变量保持静态?我必须使用全局变量,因为有多个函数可以将行添加到多个表中,这是我可以确保任何表中的每一行都具有唯一标识符的唯一方法。
太棒了!我已经尝试在变化事件中的函数构造内部定义一个临时变量,但是我遇到了同样的问题。谢谢! – 2011-02-24 15:14:11