var timeOut = 1000;
$('#'+form +' :input').each(function() {
thisObj = "";
if ($(this).parent().parent().find(".incorrect").css('display') == "inline-block" || $(this).attr('value') == "") {
if ($(this).attr('id') != "submitbtn") {
thisObj = $(this);
submit_this++;
colourfading(this, 'rgba(56, 183, 0, 1)', 'rgba(255, 30, 0, .2)', 'rgb(210,210,210)', 'rgb(250,250,250)');
}
}
var delaySubmit = (function(){
var timer = 0;
return function(callback, ms){
setTimeouts(callback, ms, thisObj);
};
})();
delaySubmit(function(){
do_sendRequest(ajaxObj, thisObj, true);
}, timeOut );
timeOut = timeOut + 1000;
});
这是我在按表单上的提交按钮时使用的一些代码。
你可以看到colourFading函数使用“...(this,'...”)。 this元素是'.each(function(){'call。
的输入元素我在我写的colourfading函数中做了一个完美的工作,每个输入元素都有一个漂亮的红色,表明它有问题,然后逐渐淡化为白色。
现在是“有趣”的部分。正如你所看到的,我把'thisObj'变量链接为相同的'this',那就是传递给colourFading,
然而,当我查看thisObj的.attr('id')时,它表示'this'实际上是我点击的提交按钮的表示。
这很奇怪,因为当我要求'this'中的id被发送到colourfading(在colourfading函数中)时,它很好地显示了输入元素的id。
我已经尝试过设置thisObj = this,thisObj = $(this),就在.each(function(){part'开始之后,在colourfading之前,它似乎有正确的元素,它只是不工作
我在这里做错了吗?不应该这样工作吗???