私はどこにもテーブルの行の内部マウスクリックに付属のJavaScriptアクションを持つテーブル行を持っている:最初のイベントを無視して2番目にスキップする方法は?
<tr onmousedown="someAction(this)">
<td>cell 1</td>
<td>cell 2</td>
<td><a href="page2.html">cell 3</a></td>
</tr>
ユーザーがどこかの行にクリックした場合、私はJavascriptのアクションをしたい、someAction(本)、続かなければならない。しかし、ユーザーがpage2へのリンクをクリックすると、そのアクションは無視され、リンクが続いていきます。
残念ながら、アクションが最初に観察されていますが、リンクされたテキストの位置をクリックして削除するだけで十分です。言い換えれば、ユーザーは実際にはリンクをクリックせず、この場合はページ2に行くことができます。
リンク上のクリックに対してマウス操作を無効にするにはどうすればよいですか?
ありがとうございます!
...
<script type="text/javascript" language="javascript">
//<![CDATA[
function stopEvent(ev) {
ev.stopPropagation();
}
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].addEventListener("onmousedown", stopEvent, false);
}
//]]>
</html>
これが持ち得る:
更新:そうのような回答に基づいて、私は最終的には、提案として伝播を停止するようにイベントハンドラを登録HTMLの最後に次のJavaScriptを含ま簡単にドキュメントのonloadイベントに含まれていましたが、CDATAセクションはすでに他の理由で必要だったので、ここで必要なものを追加しました。
ご協力ありがとうございました! :)
ありがとう!私はこのプロジェクトでjQueryを使用していないので、クローズドHTMLに含まれているJavaScriptを使用して、このタスクを達成しました(私の編集した質問を参照)。 – Trevor
@Stephen、それをもっと分かりやすくしてくれてありがとう – unclenorton