2012-07-17 57 views
0

有jQuery的相当于这个:jQuery的“新功能”等效

document.getElementById(cbxFieldID).onclick = new Function("hideUnhideRows('" + cbxFieldID + "','" + txtFieldID + "')"); 

基本上,我想为元素配置一个点击事件并在运行时通过两个参数的函数。
问题是无论点击哪个对象,都会传递相同的变量值。这里是我使用的是什么:提前

$(cbxFieldID).change(function() { 
    var $cbxField = $("#" + cbxFieldID); 
    var $txtField = $("#" + txtFieldID); 
    hideUnhideRows($cbxField,$txtField); 
}); 

感谢,

回答

0

传递给回调函数的参数是事件对象,包含有关该事件或目标的任意信息。您可以通过evt.target像这样访问目标:

$("#" + cbxFieldID).change(function (evt) { 
    alert(evt.target); 
}); 
0
$('#cbxFieldID').click(function() { 
    var $cbxField = $("#" + cbxFieldID); 
    var $txtField = $("#" + txtFieldID); 
    hideUnhideRows($cbxField,$txtField); 
}); 

这应该做的伎俩,除非我错过了一些东西。在jQuery中点击是一个你可以绑定到任何元素的函数。在这里,我们正在做到这一点ID:$('#cbxFieldID')

+0

最初尝试过。问题是值不会在运行时传递。我正在循环列表并设置一个动态函数以在运行时执行。基本上排队函数调用。每次调用该函数时,都会传递完全相同的值(最后一个被处理)。 很确定我没有正确解释。非常感谢。 – Clem 2012-08-01 20:47:11