我不明白为什么即使我点击“否”,这个确认()调用也会激活。你能告诉我我做错了吗?
$('.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,它不应该,对吧?
答案 0 :(得分:1)
<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");
}
});
答案 1 :(得分:0)
将livequery()更改为live()。 jQuery支持相同的功能。刚刚在FF中测试过,它与live()一起使用,但从未给我提示livequery()
答案 2 :(得分:0)
试试这个:
$('.deleteButton').livequery('click',function(e){
if (confirm('Are you sure?')) {
return true;
} else {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
return false;
}
});
答案 3 :(得分:0)
我道歉:事实证明我将另一个行为附加到主内容容器内的所有锚点。我为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?');
});