用户按下div中的键后,html设置为“”。但是,在用户离开div之后,我想将html设置回原始值。我怎样才能做到这一点?
到目前为止,我有以下代码:
$(document).one('keypress',"#id",function() {
$(this).html("");
}).focusout(function(){
//do something
});
答案 0 :(得分:6)
使用.data()
:
$(document).one('keypress',"#id",function() {
$(this).data('html',$(this).html()).html('');
}).focusout(function(){
$(this).html($(this).data('html'));
});
我更喜欢这种方法,因为通过将数据存储在this
上,它适用于任何选择器,包括那些匹配多个DOM元素的选择器。您只需要确保页面上的任何其他代码都没有使用data()
变量('html'
此处)。
答案 1 :(得分:3)
怎么样:
(function()
{
var html = null;
$(document).one('keypress',"#id",function() {
html = $(this).html();
$(this).html("");
}).focusout(function(){
//do something
$(this).html(html);
});
})();
我将它包装在一个自动执行匿名函数中,以便将html
变量保留在主范围之外。
或者以更简洁的方式:
$(document).one('keypress',"#id",function() {
$(this).data('orightml', $(this).html());
$(this).html("");
}).focusout(function(){
//do something
$(this).html($(this).data('orightml'));
});
这样我们就可以将原始html存储在元素中。
答案 2 :(得分:2)
也许是这样的:
var orig;
$(document).one('keypress',"#id",function() {
orig = $(this).html();
$(this).html("");
}).focusout(function(){
//do something
$(this).html(orig);
});
答案 3 :(得分:0)
您需要将值存储在变量中,以便在焦点输出后恢复它。
var divValue;
$(document).one('keypress',"#id",function() {
divValue = $(this).html();
$(this).html("");
}).focusout(function(){
$(this).html(divValue);
});