0

まず、私のjQueryを見てください。

$(document).ready(function(){
    $(".pic").find('img').hover(
    function(){ // hover in
        $(this).animate({width: "450", height: "300"}, 200);
    }, 
    function(){ // hover out
        $(this).animate({width: "150", height: "100"}, 1000); 
    });

    $(".zoom").click(function(){     // click for the lightbox
        var go = $(this).find('img').attr("src");   // get clicked link href
        $("#box").html('<img src="'+go+'"/>');  // place href as img src value

        $('#backdrop, #box').animate({opacity: ".6"}, 500, 'linear');
        $('#box').find('img').animate({opacity:
        $('#box').animate({opacity: '1'}, 300, 'linear');
        $('#backdrop, #box').css('display', 'block');
    });

    $("#backdrop").click(function(){     // close the lightbox
        $("#backdrop, #box").animate({opacity: "0"}, 500, "linear", function(){
            $("#backdrop, #box").hide();
        });
    });
});

これが私がやったことです。下に関数が書かれてい.hoverないときは関数は正常に動作しますが、下に関数を置くと関数が機能しなくなります。.click.click

4

1 に答える 1

2

コードに構文バグがあります:

$('#box').find('img').animate({opacity:

これにより、コード フォームが機能しなくなっている可能性があります。この行をコメント アウトすると (セレクターで動作する HTML を作成すると、ホバー イベントとクリック イベントが動作します。これらは独立したイベントであるため、同じ要素にバインドできます)。

JavaScript は実行前にスクリプト タグまたは .js ファイル内で一度に評価されるため、ホバー スクリプトがクリック スクリプトの構文エラーを修正しても、JavaScript の残りの部分が実行されません。これら 2 つのコード ブロックが別々のスクリプト要素 (または別々の .js ファイル) にある場合、ホバーは機能しますが、クリックは失敗します。もちろん、これは解決策ではありません。閉じられていないオブジェクト リテラルを修正する必要があります。このエラーを表示するには、Firefox に Firebug をインストールするか、IE で開発者ツールを有効にします。このようなツールがないとデバッグが難しい場合があります。

于 2013-03-03T18:01:08.483 に答える