undo preventDefault()またはにより、プログラムを無効に集のリンク
-
27-10-2019 - |
質問
しているページではイベントリスナーのネットワーク状態にします。する場合は、ネットワークは"オフラインでつくりたい"を無効にしてクロスドメインリンクしてオフラインモードになります。また利用しよう .preventDefault()
, しかし、アプリがオンラインIが必要であるときのリンクです。
イベントリスナーにディスパッチ
//check network status
if(!navigator.onLine) {
offlineLinks(); //Offline mode function
}
//add event listeners for network status
window.addEventListener('offline', function(e) {
offlineLinks(); //Offline mode function
}, false);
window.addEventListener('online', function(e) {
//need to re-enable links/Online mode
}, false);
window.addEventListener('error', function(e) {
alert('Error fetching manifest: there is a good chance we are offline.');
offlineLinks(); //Offline mode function
});
機能deク
function offlineLinks() {
$('a[href^="http"]').click(function(e) {
e.preventDefault();
$('#offline-dialog').dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog('close');
}
}
});
});
}
い拡張性のあるソリューションが起こらないラグがある場合は重大な数のリンク先のページです。ですがこのグループに参加"ボタンを逆転さ .preventDefault()
電話またはより良い方法をこす。
オンリー
私が最初に設定したいずれかを有店舗の配列href値を削除します/add.って遊びHTML5に対応した保管用 webdb
's"ができるようなデータベースのセットを引きhref onclick...しかしくなった場合には、ベストソリューションです。
解決
すなjQueryを使うと、少なくとも、リンクのハンドラです。
ものを実現すること$.クリック(ハンドラ)だけの簡略表現です。bind('をクリックし、handler).設定されていない場合は、ハンドラーになることもでき板自体が"弾性"を持っ後、このように:
var handler = function(event) {
event.preventDefault();
console.log("the links, they do nothing!");
}
// when you want the external links to be inactive.
// you could use .click(handler) here too, it's the same.
$('a[href^="http"]').bind('click', handler);
// when you want them back
$('a[href^="http"]').unbind('click', handler);
ちなみに、href^="http"であるビットを脆弱にし、だいたいすることによって、万全を外部リンクです。内部のリンクを見ることができるかもしれは"http"、外部のリンクを開始することができるその他のプロトコルのように"ftp".ようなリンクは自分のクラスのように、Wikipediaでは外部の'.
所属していません StackOverflow