我遇到了Ajax问题。
有一个输入字段,我想在onblur()事件中提交更改的值。这一切都很好,除了有一个恼人的闪烁。
我输入新值并点击即可。在值更改为新值之前,旧值会闪回...
这就是我这样做的方式。我将一个onblur函数附加到input元素:
onblurevent = function()
{
HN.Gui.HTML.post(bindingpage, bindingref, this.value);
};
HN.Util.addEvent(elem, "blur", onblurevent);
该事件与util函数绑定:
HN.Util.addEvent = function(obj, type, fn)
{
if ( obj.attachEvent ) {
obj['e'+type+fn] = fn;
obj[type+fn] = function(){obj['e'+type+fn]( window.event );};
obj.attachEvent( 'on'+type, obj[type+fn] );
} else
obj.addEventListener( type, fn, false );
};
它触发时会触发一个jquery帖子:
HN.Gui.HTML.post = function(page, ref, value)
{
var json = (value == "")
? {clear: "contents"}
: {set: {formula: value}};
var url = page + ref + "?attr";
$.post(url, JSON.stringify(json));
};
这一切都很直接。
答案 0 :(得分:0)
原来是我们Ajax更新周期的人工制品:
问题是通知是否触发了两次 - 一次是在'新'值出现之前,然后是一次,这导致了闪烁......