0

+/- 記号を使用してテキストを再表示/非表示にする方法に関する古い StackOverflow の質問があります。

Cheesoは、いくつかのサンプル コードを含む優れたソリューションを投稿しました。元のポスターは一致しませんでしたが、まさに私が探していたものでした。:-)

モバイル デバイスでの使用を意図した Web サイトでコードを使用しています。唯一の問題は、+/- がタップされるたびにページが画面の上部に戻ることです。

とにかくそれを回避する方法はありますか?ありがとう。

4

3 に答える 3

2

クリック イベント ハンドラーで、false を返します。

$('a.selector').click(function() {
    return false;
});
于 2012-06-04T21:45:13.137 に答える
2

Cheesoがメールで提供してくれた回答を次に示します。フォローしている他の人の利益のためにここに投稿しています。これはうまくいきませんでした。私はその理由を解明している最中です。


この行を変更すると $('div pa[href="#"]').click(function() { expando(this); });

これに:

$('div pa[href="#"]').click(function(ev) { ev.preventDefault(); expando(this); });

...上へのスクロールをやめるべきだと思います。


ユーザーがハッシュ文字を含むリンクをクリックすると、ブラウザはページ上のフラグメント マーカーが配置されている場所までスクロールすることが期待されます。ブックマークのように。たとえば、この URL では: http://en.wikipedia.org/wiki/Causes_of_WWII#Militarism フラグメント (ブックマーク) は #Militarism であり、そのリンクをクリックすると、ブラウザーはそのセクションにスクロールします。

私が書いたそのサンプルの場合、href は裸の # 文字であり、空のフラグメントを意味します。そして、ブラウザがデフォルトの場所、つまり「ページの上部」にスクロールしていると思います。

これを回避するには、クリック ハンドラで ev.preventDefault() を呼び出すだけです。これは、クリックの通常の処理を抑制する jQuery のトリックです。あなたの場合、ブラウザが存在しないアンカーにスクロールしようとする部分を抑制します。

于 2012-06-04T21:45:15.740 に答える
1

event.preventDefault()クリック ハンドラに実装します。

$('a').click(function(e) {
    e.preventDefault();
    // more code here
});
于 2012-06-04T21:45:50.217 に答える