2

いくつかのAjax並べ替えオプションをリストに追加したいと思います。私のサイトはこれまでJavaScriptなしで実行されているので、JavaScriptをオフにしている人、古い/モバイルブラウザー、またはnoscriptで実行し続けたいと思います。

JavaScriptが有効になっている場合にリンクをクリックするときにJavaScriptのブロックを実行し、有効になっていない場合はそのリンクでブラウザを新しいページに誘導するにはどうすればよいですか。ハッキーなnoscriptタグを避けたいのですが。

4

5 に答える 5

7

リンクには、代替の非 JavaScript ページを指す有効な href 値が必要です。また、クリック イベントでは、false を返して、JavaScript 対応ブラウザーがリンクをたどらないようにする必要があります。

<a id="aboutLink" href="about-us.html">About Us</a>

$('#aboutLink').click(function () {
   // ajax content retrieval here...
   return false; // stop the link action...
});
于 2009-08-19T08:13:47.307 に答える
5

私は使用しますpreventDefault

$('a').click(function(e) {
    e.preventDefault();  //stop the browser from following
    $('#someDiv').load('content.php');
});

<a href="no-script.html">Load content</a>

Javascript がない場合は、HREF に従います。

于 2009-08-19T08:17:26.007 に答える
2

新しいページの URL を HREF に入れ、onClick イベント ハンドラーから false を返して、リンクが取得されないようにすることができると思います。JS が有効になっていない場合、onClick は実行されません。つまり、HREF に従います。

于 2009-08-19T08:12:56.937 に答える
2

懸念事項を適切に分離するには、attachEvent (IE) または addEventListener (標準) (または、Prototype、jQuery、MooTools、YUI、Glow など、それを隠すツールキット) を使用してから、イベントをキャンセルすることをお勧めします。 JavaScript 内からのイベント。このリンクを仮定します:

<a href='foo' id='mylink'>Link text</a>

...プロトタイプを使用した例を次に示します。

// Hook up your handler on page load
document.observe("dom:loaded", function() {
    // Look up the link, apply your handler
    $('mylink').observe('click', yourHandler);
});

// Your handler:
function yourHandler(event) {
    // Prevent the default action
    event.stop();

    // ...your code here...
}

リンクに ID を割り当てる必要はありません。ID 以外の DOM 要素を見つける方法はたくさんありますが、便利な例になります。

jQueryなど al. には、独自のバージョンの event.stop() がありますが、最終的にはイベントをキャンセルすることになります。

于 2009-08-19T08:16:37.910 に答える
0

JavaScript を使用しない場合のように HTML を書き留めてから、JavaScript を有効にした場合のようにコンテンツを変更します。

JS が有効になっている場合、サイトの読み込みが少し遅くなり、構築中に少し奇妙に見えるかもしれませんが、機能はそのままです。JS が無効になっている場合、サイトはそのまま残り、非 JS ユーザーは引き続きアクセスできます。

于 2009-08-19T08:44:57.620 に答える