1

追加の jQuery を機能させるのに問題があります。

元のスクリプトの次の 2 行のコードに絞り込みました。これを削除すると、新しい 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 に答える