2011-07-26 8 views
2

リンクを開く前に、jQueryのイベントを実行しは、私は、簡単なJavaScriptを/ jQueryの関連質問がある

<a href="/page/#" class="pagination">NEXT</a> 

#を変更の上にそれによれば、ユーザーがオンになっているページ。すなわち:#は可変であり、静的にすることはできません。

jQueryを使用して、の前に新しいリンクが開かれるように、私は効果を出そうとしています(slideUp();、具体的には)。

これは可能ですか?

私は.click().mousedown()の両方を試しました。リンクをクリックすると、効果が出る前に新しいページが開きますので、うまくいかないようです。

私はpreventDefault()の聞いたことがあるが、私はそれは私がその他ページ番号を、検出するために、別の関数を作成する必要があります意味するであろうために、離れているから敬遠したいと思います(あまりにも多くの仕事〜)

答えて

8

Iそれに反対することをお勧めします。ユーザーがページを変更できるようにします。

はあなたが本当にしたい場合は、何をする必要があるslideUpを行う、(明示的に、またはあなたのハンドラからfalseを返すことで)実際にpreventDefaultあり、その後、slideUp補完関数では、URLの変更をトリガーします。

$("a.pagination").click(function() { 
    // Grab the link's href 
    var href = this.href; 

    // Slide up the content you want to slide up 
    $("some_selector_here").slideUp(function() { 
     // Slide is finished, navigate 
     location.href = href; 
    }); 

    // Prevent the default action of the link 
    return false; 
}); 
0

は、あなただけのページのURLの変更を延期する必要があります:このように

$('.pagination').click(function(){ 
    var link = this; 
    $('.some-other-element').slideUp(500, function(){ 
     location.href = this.getAttribute('href'); 
    }); 
    return false; 
});