2011-07-22 19 views
0

我使用下面的代碼,當你專注於它,以顯示其dissappears文本字段的文本:.delegate問題

$(document).ready(function(){ 
    $('.onfocus_rem_txt').each(function(){ 
    $(this).val($(this).attr('defaultVal')); 
    $(this).css({color:'grey'}); 
    }); 

    $('.onfocus_rem_txt').focus(function(){ 
    if ($(this).val() == $(this).attr('defaultVal')){ 
    $(this).val(''); 
    $(this).css({color:'black'}); 
    } 
    }); 

    $('.onfocus_rem_txt').blur(function(){ 
    if ($(this).val() == ''){ 
    $(this).val($(this).attr('defaultVal')); 
    $(this).css({color:'grey'}); 
    } 
    }); 
}); 

我如何才能在每一個新的使用它使用.delegate。我打開的PHP頁面?

+0

你可以把它連接到頁面的主體,但這就是爲什麼他們有live() – frictionlesspulley

回答

0

可以委託.focus.blur事件,像這樣,不應該需要與.each迭代,只是當你創建input元素

例如預申請的價值和文本顏色:http://jsfiddle.net/pxfunc/fLnjX/

var $container = $('#container'); 

$container.delegate('.onfocus_rem_txt', { 
    'focus': function() { 
     var $that = $(this); 
     if ($that.val() === $that.attr('defaultVal')) { 
      $that.val('').css('color', 'black'); 
     } 
    }, 
    'blur': function() { 
     var $that = $(this); 
     if ($that.val() === '') { 
      $that.val($that.attr('defaultVal')).css('color', 'grey'); 
     } 
    } 
}); 
0

您可以依次在多個地方使用此功能,現場使用

$(document).ready(function(){ 
    $('.onfocus_rem_txt').each(function(){ 
    $(this).val($(this).attr('defaultVal')); 
    $(this).css({color:'grey'}); 
    }).live({ 
    'focus': function(){ 
     if ($(this).val() == $(this).attr('defaultVal')){ 
     $(this).val(''); 
     $(this).css({color:'black'}); 
     }, 
    'blur': function(){ 
     if ($(this).val() == ''){ 
     $(this).val($(this).attr('defaultVal')); 
     $(this).css({color:'grey'}); 
     } 

    }); 
}); 
相關問題