e.stopPropagation(); e.preventDefault(); を使用して、イベントのバブリングとデフォルト イベントの実行を防ぐことができます。ただし、イベントの追加を防ぐことはできません。
「チェックアウト」をクリックします。これを行うと、チェックアウト自体に独自のイベントが発生しますが、チェックアウトする前にログインするかどうかを決定する必要があります。
if(isLogin){ //ログインするかどうかを決定
console.log("ログインしていません")
}その他{
// チェックアウト関連のコード
}
「My Homepage」をクリックするとログインチェックもあります
ログイン判定コード
if(isLogin){ //ログインするかどうかを決定します
console.log("ログインしていません")
}その他{
//パーソナルセンター
}
判断するログインがさらにある場合。上記のようなコードはさらに増えるのでしょうか?その後、イベントが追加されないようにする stopImmediatePropagation() メソッドを発見しました。上記の問題はもう問題ありません。
<メタ文字セット="UTF-8">
デモ
<スクリプト src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js">
頭>
チェックアウト
お気に入りに追加
他人による支払い
カートに追加
マイホームページ
<スクリプト>
//最初にバインドします
$(".isLogin").on("click", function (e) {
if(true){ //ログイン判定
アラート("ログインしていません");
e.stopImmediatePropagation();
}
false を返します
});
$(".bill").on("click",function(){
alert("関連コンテンツをチェックしてください!");
});
$(".a1").on("クリック",function(){
アラート("a1");
});
$(".a2").on("クリック",function(){
アラート("a2");
});
$(".a3").on("クリック",function(){
アラート("カートに追加されました");
});
$(".a4").on("クリック",function(){
alert("ログイン判定");
});
スクリプト>
本文>
実際、jquery は、イベントを表示し、firebug を開いてコンソールに入力するためのメソッド $._data($('.isLogin').get(0)) を提供します。
JSコード
$._data($('.isLogin').get(0))
次の内容が表示されます:
JSコード
オブジェクト { events={...}, handle=function()}
クリックするとイベント配列が表示され、どのイベントが要素にバインドされているかを簡単に確認できます。