2011-01-18 15 views
1

jQueryで開発する場合、href = '#' id = 'myTrigger'をイベントのトリガーとして使用することがよくあります。実際にハイパーリンクとして使用されるのを止めるにはfalseを返します。前にコードを投稿したときはいつでも、ハイパーリンクをトリガーとして使用している経験豊かな人たちによって、私はリンチされています。私は入力タイプ= "ボタン"を使用する必要がありますか、または任意の要素にIDを与え、それをトリガーとして使用しますか?意味的に正しいjQueryトリガー

jQueryトリガのベストプラクティスは何ですか?

答えて

1

これは、あなたがやっていることと、要素のデフォルトの動作が何であるかによって異なります。

たとえば、ポップアップでページを開いてリンクのデフォルト動作を置き換える場合は、リンクを使用するのが理にかなっています。検索エンジンには引き続きリンクが表示され、クライアントスクリプトを無効にした少数のユーザーにとっては正常に機能しなくなります。

一方、リンクを使用するナビゲーションとはまったく異なるイベントにイベントを使用する場合は、別の要素を使用する必要があります。

リンクのデフォルト動作を停止するには、preventDefaultメソッドを使用できます。例:

$('a#info').click(function(e){ 
    alert('info'); 
    e.preventDefault(); 
}); 

idを使用して、イベントをキャッチする要素をターゲットにする必要はありません。 idは要素を効率的にターゲットする方法ですが、要素をターゲットにする方法はすべて有効です。例:

<div class="button">Eat me</div> 

$('.button').click(function(){ alert('Eaten.'); }); 
0

状況に応じて適切なものを使用してください。ハイパーリンクを追加しないでください。既に存在する要素にclickイベントを追加するだけです。 <p>の場合は、<img>の場合は<p>にクリックイベントを追加し、それに追加します。

1

私は通常のような何か:あなたは、私はとの問題を持っていたのhrefの発射を停止するreturn falseを必要としない...

$('#myTrigger').click(function() { /* do stuff */ }) 

:で

<div id=myTrigger'>Click Me</div> 

を過去には; JavaScriptを実行する前にクリックすると、とにかく起動します。このやり方も私には「正しい」と思われますが、それを行うための他の方法があります。

あなたはもちろん、何かをクリックするようにすることもできます。 div、span、img、buttonなど - 私はこれまでほとんど使用しない、常に上記のように使用されるボタンです。当時最良のものを使用してください...

関連する問題