こんにちは、誰か助けてください。ユーザーセッションごとにリンクが1回クリックされた後にリンクを無効にする方法を見つけようとしています.jqueryでこれを行うことはできますか?
私はjavasriptとjqueryを初めて使用するので、誰かが何をする必要があるのか教えてください。
こんにちは、誰か助けてください。ユーザーセッションごとにリンクが1回クリックされた後にリンクを無効にする方法を見つけようとしています.jqueryでこれを行うことはできますか?
私はjavasriptとjqueryを初めて使用するので、誰かが何をする必要があるのか教えてください。
event.preventDefault()をバインドして、リンクをたどるデフォルトのブラウザイベントを防ぎます。それ以降のクリックでのみ実行します(最初のクリックでそれが許可されるようにします-これはあなたが望むものです)。
$(".oncelink").one('click',function(e){
$(this).on('click',function(ev){
ev.preventDefault();
});
});
この種のロジックが機能するには、サーバー側にもチェックを入れる必要があります。しかし、jQueryを使用するクライアント側では、次のようなことができます
$('a').on('click', function()
{
var me = $(this);
//You can also set some attribute value if you do not want to use class
if(me.hasClass('disabled'))
{
return false;
}
else
{
me.addClass('disabled');
}
});
HTTP 接続間で状態を保持する方法は、Cookie を使用することです。クライアント側のCookieの設定/取得は面倒になる可能性があるため、Cookieの設定/取得にはサーバー側の言語を使用する必要があり、言うまでもなく安全でなく悪用されやすい. また、ユーザーがブラウザーで JS をオフにしている場合、これは機能せず、努力が無駄になります。ただし、次のようになります。
// on dom ready
var onceButton = document.getElementById('once');
function disableButton () {
onceButton.disabled = 'disabled';
document.cookie="disable_button=1";
// prevent listening on future clicks
onceButton.removeEventListener('click', disableButton, false);
}
if (document.cookie.indexOf('disable_button=1;') === -1) {
// if no cookie set, wait until click happens to disable button
onceButton.addEventListener('click', disableButton, false);
} else {
// cookie set, disable immediately
disableButton();
}