2012-06-26 103 views
1

我無法獲得一些額外的jQuery工作。爲什麼這個jQuery不能正常工作?

我已經縮小到原始腳本中的以下兩行代碼,當刪除時允許我的新jQuery工作,顯然我需要這些原始腳本來運行。

var J = jQuery.noConflict(); 
var $ = function (x) {return document.getElementById(x);} 

新的代碼我試圖補充的是:

$(function(){ 

// Contact form - animates fading labels 

$formItems = $("input:text, textarea"); 

$formItems 
    // fires after the page has loaded 
    // if the field has already some value the label becomes invisible 
    .each(function(){ 
     if ($(this).val() !== '') { 
      $(this).prev().css({ 
       opacity: '0' 
      }); 
     }; 
    }) 
    // fires on focus 
    // if a focused field has no value label fades away 
    .focus(function(){ 
     if ($(this).val() == '') { 
      $(this).prev().stop().animate({ 
       opacity: '0' 
      }, 200); 
     } 
    }) 
    // fires when the input field is no longer focused 
    // labels fade in if there is no input in input fields 
    .blur(function(){ 
     if ($(this).val() == '') { 
      $(this).prev().stop().animate({ 
       opacity: '1' 
      }, 200); 
     } 
    }) 

}); 

回答

2
(function($) { 
$(function(){ 

// Contact form - animates fading labels 

$formItems = $("input:text, textarea"); 

$formItems 
    // fires after the page has loaded 
    // if the field has already some value the label becomes invisible 
    .each(function(){ 
     if ($(this).val() !== '') { 
      $(this).prev().css({ 
       opacity: '0' 
      }); 
     }; 
    }) 
    // fires on focus 
    // if a focused field has no value label fades away 
    .focus(function(){ 
     if ($(this).val() == '') { 
      $(this).prev().stop().animate({ 
       opacity: '0' 
      }, 200); 
     } 
    }) 
    // fires when the input field is no longer focused 
    // labels fade in if there is no input in input fields 
    .blur(function(){ 
     if ($(this).val() == '') { 
      $(this).prev().stop().animate({ 
       opacity: '1' 
      }, 200); 
     } 
    }) 

}); 
})(jQuery); 

您腳本覆蓋0​​,使你不能使用它了引用jQuery的。使用這個匿名函數,您再次獲得參數$並將jQuery傳遞給它。所以,在你的匿名函數中,你可以再次使用$來引用jQuery。

希望這有助於

+0

謝謝你的解釋和工作代碼:) – Jessica

+0

或者只是使用'J',而不是'$'(顯然更爲修改腳本轉換它,但後來爲什麼設置'Ĵ '通過'.noConflict()'如果不使用它?) – nnnnnn

相關問題