これは、POJSを使用したjsfiddleでreturn false;
、イベントの伝播を停止しないことを示しています。http: //jsfiddle.net/Ralt/Lz2Pw/
これは、イベントの伝播を停止するreturn false;
ことを示すjQueryを使用した別の例です:http: //jsfiddle.net/Ralt/D5Mtg/
編集: jQueryがこれを行う理由を説明しているもの(意図的に元の動作とは異なります)(およびコード内のどこで)が答えを取得します。
コードは次のとおりです(長いですが、非常に読みやすいです)。
両方のバージョンのHTML:
<div id="parent1"> <div id="child1"><a href="#" id="a1">child1</a></div> </div> <div id="parent2"> <div id="child2"><a href="#" id="a2">child2</a></div> </div> <div id="parent3"> <div id="child3"><a href="#" id="a3">child3</a></div> </div>
POJS:
document.getElementById( 'child1' ).onclick = function( e ) { console.log( 'child1' ); e.preventDefault(); }; document.getElementById( 'parent1' ).onclick = function( e ) { console.log( 'parent1' ); }; document.getElementById( 'child2' ).onclick = function( e ) { console.log( 'child2' ); return false; }; document.getElementById( 'parent2' ).onclick = function( e ) { console.log( 'parent2' ); }; document.getElementById( 'child3' ).onclick = function( e ) { console.log( 'child3' ); e.stopPropagation(); }; document.getElementById( 'parent3' ).onclick = function( e ) { console.log( 'parent3' ); };
jQueryバージョン:
$( '#child1' ).click( function( e ) { console.log( 'child1' ); e.preventDefault(); }); $( '#parent1' ).click( function( e ) { console.log( 'parent1' ); }); $( '#child2' ).click( function( e ) { console.log( 'child2' ); return false; }); $( '#parent2' ).click( function( e ) { console.log( 'parent2' ); }); $( '#child3' ).click( function( e ) { console.log( 'child3' ); e.stopPropagation(); }); $( '#parent3' ).click( function( e ) { console.log( 'parent3' ); });