jquery toggle はデフォルトで preventDefault() を呼び出すため、デフォルトは機能しません。チェックボックスをクリックできない、リンクをクリックできないなど
デフォルトのハンドラーを復元することは可能ですか?
jquery toggle はデフォルトで preventDefault() を呼び出すため、デフォルトは機能しません。チェックボックスをクリックできない、リンクをクリックできないなど
デフォルトのハンドラーを復元することは可能ですか?
私の場合:
$('#some_link').click(function(event){
event.preventDefault();
});
$('#some_link').unbind('click');
デフォルトのアクションを復元する唯一の方法として機能しました。
ここに見られるように: https://stackoverflow.com/a/1673570/211514
そのかなりシンプル
あなたが次のようなことをしたとしましょう
document.ontouchmove = function(e){ e.preventDefault(); }
ここで元の状態に戻すには、以下を実行します...
document.ontouchmove = function(e){ return true; }
このウェブサイトから。
復元するpreventDefault()
ことはできませんが、できることはそれをだますことです:)
<div id="t1">Toggle</div>
<script type="javascript">
$('#t1').click(function (e){
if($(this).hasClass('prevented')){
e.preventDefault();
$(this).removeClass('prevented');
}else{
$(this).addClass('prevented');
}
});
</script>
さらに一歩進めたい場合は、トリガー ボタンを使用してイベントをトリガーすることもできます。
function DoPrevent(e) {
e.preventDefault();
e.stopPropagation();
}
// Bind:
$(element).on('click', DoPrevent);
// UnBind:
$(element).off('click', DoPrevent);
場合によっては*、最初はreturn false
の代わりにe.preventDefault()
、次にデフォルトを に戻したいときに使用できますreturn true
。
*イベントのバブリングを気にせず、e.stopPropagation()
と一緒に使用しない場合の意味e.preventDefault()
同様の質問も参照してください(スタックオーバーフローにもあります)
またはチェックボックスの場合、次のようなものを使用できます。
$(element).toggle(function(){
$(":checkbox").attr('disabled', true);
},
function(){
$(":checkbox").removeAttr('disabled');
})
これを行うことで、デフォルトのアクション (HREF フォローの場合) を復元できます。
window.location = $(this).attr('href');
無効にする:
document.ontouchstart = function(e){ e.preventDefault(); }
有効:
document.ontouchstart = function(e){ return true; }
これはうまくいくはずです:
$('#myform').on('submit',function(e){
if($(".field").val()==''){
e.preventDefault();
}
});
私はあなたが何を意味しているのかわかりません:しかし、ここに同様の(そしておそらく同じ)問題の解決策があります...
私はしばしば preventDefault() を使用してアイテムをインターセプトします。ただし、傍受の唯一の方法ではありません...多くの場合、以前と同じように動作を継続するか、停止するかの「質問」が必要になる場合があります。最近のケースでは、次のソリューションを使用しました。
$("#content").on('click', '#replace', (function(event){
return confirm('Are you sure you want to do that?')
}));
基本的に、「デフォルトの防止」は傍受して別のことを行うことを目的としています。「確認」は...まあ-確認で使用するために設計されています!