2011-05-06 80 views
0

我得到一個錯誤,我假設它在我的語法。「F is undefined」使用直播活動

目的:如果用戶實際上並沒有寫在任何text_area,然後填寫回在其標籤。

驗證碼:

$(".card_signup_form input").live('click', function(){ 
    $(this).css("color","#666666"); 
    $old_value = $(this).attr("value"); 
    $(this).attr("value", "") 
    if ($(this).live('keyup blur') && $(this).attr("value") == "") { 
    $(this).attr("value", $old_value); 
    }; 
}); 

jQuery的常識錯誤:

F is undefined 

回答

4

我覺得你的問題是在這裏

if ($(this).live('keyup blur') ...) { 
    ... 
    }; 

現場正在尋找一個功能,又名「F」,綁定你沒有提供。我建議將你的活結合分離成單獨的代碼塊。

正如其他人已經指出的,只需綁定點擊就不會爲沒有鼠標導航的用戶工作。

2

這是我通常如何處理這個問題,你一定要在很多live事件 - 不確定是否不斷向DOM添加新的文本字段。如果是這樣,可能需要採取稍微不同的方法。

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

就像一個快速的旁註,「模糊」只適用於FF權利? – Trip 2011-05-06 20:22:17

+2

nono,模糊應該可以在所有瀏覽器中使用 – 2011-05-06 20:22:48

+2

'blur'是'onblur'事件,它已經存在很長時間了。如果你告訴我它不起作用,你會震驚和驚訝我。 – 2011-05-06 20:23:15

2

您可以通過指定模糊和焦點事件處理程序(焦點將處理點擊)來做同樣的事情。您還可以指定「默認」屬性並將該值與默認值進行比較。我還會指定一個「默認」css類,而不是直接處理屬性(只是我的前綴)。

$(".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>