Jquery 使用实时事件“F未定义”

Jquery 使用实时事件“F未定义”,jquery,events,Jquery,Events,我得到了一个错误,我假设它在我的语法 目标:如果用户实际上没有在文本区域中写入任何内容,则用其标签重新填充 守则: jQuery的常识错误: 这就是我通常处理这个问题的方式,你有很多实时事件在进行-不确定你是否在不断地向DOM添加新的文本字段,或者没有。如果是这样的话,可能不得不采取稍微不同的方法 $('input').focus(function() { $(this).data('prev-val', $(this).val()) }) .blur(function() {

我得到了一个错误,我假设它在我的语法

目标:如果用户实际上没有在文本区域中写入任何内容,则用其标签重新填充

守则:

jQuery的常识错误:


这就是我通常处理这个问题的方式,你有很多实时事件在进行-不确定你是否在不断地向DOM添加新的文本字段,或者没有。如果是这样的话,可能不得不采取稍微不同的方法

$('input').focus(function()
{
    $(this).data('prev-val', $(this).val())
})
.blur(function()
{
    if ($.trim($(this).val()).length == 0)
    {
        $(this).val( $(this).data('prev-val') );
    }
});

您可以通过指定模糊和焦点事件处理程序来执行相同的操作,焦点将处理单击。还可以指定默认属性并将该值与默认值进行比较。我还将指定一个默认的css类,而不是直接处理属性(只是我的pref)

$(".card_signup_form input").live("focus", function()
{
     var $this = $(this);
     if($this.val() != $this.attr("default"))
     {
         $this.val("");
         $this.removeClass("default");
     }
}).live("blur", function()
{
    var $this = $(this);
     if($this.val() == "")
     {
         $this.val($this.attr("default"));
         $this.addClass("default");
     }
}
<style>
.default{
   color:#666666;
}
</style>

我想你的问题在这里

  if ( $(this).live('keyup blur') ... ) {
   ...
  };
Live正在寻找一个函数,也称为F,用于绑定您尚未提供的功能。我建议将活动绑定分离为单独的代码块

正如其他人所指出的那样,对于没有鼠标导航的用户来说,点击绑定是不起作用的。

blur是onblur事件,它已经存在很长时间了。如果你告诉我它在ie上不起作用,你会让我震惊和惊讶。
$(".card_signup_form input").live("focus", function()
{
     var $this = $(this);
     if($this.val() != $this.attr("default"))
     {
         $this.val("");
         $this.removeClass("default");
     }
}).live("blur", function()
{
    var $this = $(this);
     if($this.val() == "")
     {
         $this.val($this.attr("default"));
         $this.addClass("default");
     }
}
<style>
.default{
   color:#666666;
}
</style>
  if ( $(this).live('keyup blur') ... ) {
   ...
  };