livequery-confirm()
-
06-07-2019 - |
質問
「no」を押しても、このconfirm()呼び出しが起動する理由がわかりません。私が間違っていることを教えてもらえますか?
$('.deleteButton').livequery('click',function(){
if(confirm('Are you sure?')){
return true;
}else
{
return false;
}
return false;
});
HTMLマークアップ:
<a class="smallbutton deleteButton" href="users.php?todo=delete&id=32">delete</a>
チェックすると、falseが返されますが、ページはクリックされたA href値にリダイレクトされます。通常、falseを返す場合、そうすべきではありませんか?
解決 3
お:び申し上げます。メインコンテンツコンテナ内のすべてのアンカーに別のビヘイビアを追加していたことがわかりました。 deleteButtonの除外句を追加しましたが、現在は正常に動作します。
これが、私の最終的な作業コードです:
var $tabs= $("#tabs").tabs({
fx: {
opacity: 'toggle'
},
load: function(event, ui) {
$('a', ui.panel).livequery('click',function() {
// we need to exclude the listNav buttons AND deleteButton buttons from this behavior
if($(this).parent().is(':not(".ln-letters")') && $(this).is(':not(".deleteButton")')){
$(ui.panel).load(this.href);
return false;
}
});
}
});
そして、削除ボタンの動作は単純なもので動作します:
$('.deleteButton').live('click',function(e){
return confirm('Are you sure?');
});
他のヒント
<a id="myId_1" href="#" class="deleteButton">delete</a>
$('.deleteButton').livequery('click',function(e){
e.stopPropagation();
if(confirm('Are you sure?')){
functionForDelete($(this).attr("id").split("_")[1]);
}
});
// OR ir you like goto href
<a id="myId1" href="url/delete/id.php?1" class="deleteButton">delete</a>
$('.deleteButton').livequery('click',function(e){
e.stopPropagation();
if(confirm('Are you sure?')){
window.location=$(this).attr("href");
}
});
livequery()をlive()に変更します。 jQueryは同じ機能をサポートします。 FFでテストし、live()で動作しましたが、livequery()でプロンプトを表示することさえありませんでした
これを試してください:
$('.deleteButton').livequery('click',function(e){
if (confirm('Are you sure?')) {
return true;
} else {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
return false;
}
});
所属していません StackOverflow