1
<script type="text/javascript">
$(document).ready(function() {
$("body").css("display", "none");
$("body").fadeIn("slow");
    $("a.link").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut("slow", redirectPage);        
    }); 
    function redirectPage() {
        window.location = linkLocation;
    }
});
</script>

「onclick」を使用する場合、「fadeOut」は機能しません。「href」を使用せずに実装できるように?

<a class="link" onclick="window.location='index.php'">index.php</a>
4

3 に答える 3

1

スクリプトは次のように機能します。

<a class="link" href="http://google.de">index.php</a>

それは「体」をフェードアウトし、その後グーグルにリダイレクトします。

また、hrefなしでも機能します。

<a class="link">index.php</a>

この場合、現在のページを「更新」するだけです。

href-attribute内にリンクを保存したくない場合は、次のようにすることができます。

<a class="link" data-link="index.php">index.php</a>

これは有効なHTMLであり、href属性の代わりに新しいHTMLを読み取ることができます。

$(this).attr('data-link');

リンク内に別の「onclick」ハンドラーを設定する必要はありません。これは最初に起動するため、jQueryイベントハンドラーが作業を完了する前に実行されます。

于 2012-06-24T16:15:31.153 に答える
0

なぜだめですか?

<a class="link" href='index.php'>index.php</a>

1つのイベントに2つのクリックハンドラーを使用しているため、予期しない動作が発生します。

于 2012-06-24T16:15:14.793 に答える
0

windows.locationをすぐに変更するonclickハンドラーをタグにすでに定義しています。

もう1つのハンドラー(JQueryを介して定義)も起動されますが、最初のハンドラーがページを変更するため、実行する時間がありません。

フェードアウトを表示するには、タグ内のontを削除する必要があります。

于 2012-06-24T16:26:47.993 に答える