このコードでボタンのみを実行するにはどうすればよいですか?
<span id="spanClicker">
<span id="subClicker">
[Click Me]
</span>
</span>
このフィドルのように:http://jsfiddle.net/rpCVy/
このコードでボタンのみを実行するにはどうすればよいですか?
<span id="spanClicker">
<span id="subClicker">
[Click Me]
</span>
</span>
このフィドルのように:http://jsfiddle.net/rpCVy/
http://jsfiddle.net/malet/rpCVy/3/
e.stopPropagation()
両方の要素でクリックイベントが発生しないようにするために使用できます。
また、この.live
関数は廃止されたため、代わりにjQuery1.7.on
を使用する必要があります。
これがあなたが探しているものです:
$( '#subClicker' ).on( 'click', function (e) {
alert( 'subClicker' )
// Now here is the magic you want:
e.stopPropagation( )
} )
ご想像のとおりe.stopPropagation()
、イベントがその親要素に伝播するのを防ぐことができます。
これはそれをするべきです。
新しいJavaScript
$(function()
{
$("#spanClicker").live("click",function()
{
alert('Span Clicked');
});
$("#subClicker").live("click",function(e)
{
alert('Button Clicked');
e.stopPropagation();
});
});
に関連付けられた無名関数.click
は、最初の引数のイベントを受け取ることができます。イベントオブジェクトのメソッドを呼び出してstopPropagation()
、クリックイベントがイベントのターゲット要素のコンテナにバブリングするのを防ぎます。