0

次のようなhtmlコードがあります。

<ul>
  <li>
    <a href="#foo">foo</a>
  </li>
</ul>

ユーザーが項目をクリックすると、クリック ハンドラーが呼び出されます。

私が欲しいもの:

  • ハンドラー メソッドでハッシュを変更する (を使用window.location.hash)
  • ユーザーがマウスの左クリックでクリックすると、ハンドラーが呼び出される必要があります
  • ユーザーが中マウスでクリックした場合 (Chrome など)、リンクを新しいタブで開く必要がありますが、現在のページではハンドラーを呼び出すべきではありません。
  • リンクとの別の対話をサポートします: ユーザーがアクティブなリンクで Enter キーを押したとき (tabキーを使用してアクティブ化できます)、または vimperator や viium などのブラウザー拡張機能を使用している場合

ハンドラーの中央ボタンでハッシュを変更しても新しいタブは開かれませんが (ただし、現在のページでハンドラーが呼び出されています)、中央ボタンのクリックや ctrl または Shift が押されたときにクリックなどのイベントでハンドラーを呼び出さない場合は解決されました

ハンドラー コードからハッシュの変更を削除すると、中央のボタンで新しいタブが開きますが、現在のページでハンドラーが呼び出されます。

私の目的を達成する方法についてアドバイスをください:mousedownクリック ハンドラーと共にハンドラーを実装する必要がありますか、それとももっと便利な方法があるのでしょうか?

4

1 に答える 1

2

左クリックとその他のマウス ボタンについて役立つ記事を書きました: http://www.jacklmoore.com/notes/click-events

jQueryを使用していることを前提としています。特定のボタンの押下は、whichプロパティの下のイベント オブジェクトに示されます。

于 2013-02-25T07:40:51.343 に答える