1

我无法让一些额外的 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);
        }
    }) 

});
4

1 回答 1

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);

您的脚本会覆盖,$因此您不能再使用它来引用 jQuery。使用这个匿名函数,您可以$再次获得一个参数并将 jQuery 传递给它。因此,在您的匿名函数中,您可以再次使用$来引用 jQuery。

希望这可以帮助

于 2012-06-26T06:42:12.163 回答