我的脚本下面有点问题。我正在尝试创建一个脚本,您可以在输入字段中编写一些文本,当您键入一些文本时,您将在焦点输出时收到警报。如果输入包含文本,则警报应仅显示。
但问题是,如果你试图写一些文字,删除它然后把注意力集中在输入上,下次你不会显示警报,当你实际写了一些东西然后集中注意力时。
现在,无论你是否写过任何东西,警告功能在焦点出现时总会“消失”。
我曾尝试在警告之前添加var already_alert_me_once = true
,然后将所有内容放在:if(already_alert_me_once == false
)中,但这并不能解决问题。
我还试图用$('#title').focusout(function()
更改$('#title').one('focusout', function()
,这几乎可以解决问题。
这是我目前的剧本:
// When focus on title
$('#title').focus(function () {
// Check if empty
if (!$(this).val()) {
$('#title').one('focusout', function () {
if ($(this).val()) {
alert("YEP");
}
});
}
});
所以我的问题是;如何执行此操作警报仅在 写入内容时显示,之后再次(除非您重新加载页面)。
希望你能理解我的意思。
谢谢--YaXxE
答案 0 :(得分:3)
答案 1 :(得分:2)
几乎是最简单的解决方案,不需要.one或焦点事件:)
$('#title').blur(function() {
if( $(this).val() ) {
alert('!!');
$(this).unbind('blur');
}
});
答案 2 :(得分:0)
而不是将变量“already_alert_me_once”放在函数中,使其成为全局变量。这样就可以保持范围。你也可以在#title中添加一个属性,表明它已被点击,然后在执行代码之前检查该属性是否存在。