gpt4 book ai didi

javascript - jquerymobile 确认似乎不会影响结果?

转载 作者:行者123 更新时间:2023-12-02 20:16:49 29 4
gpt4 key购买 nike

这是来自 jquerymobile 应用程序的片段。这是一个简单的文件管理器,允许删除文件,我想确认删除。我正在尝试使用 JavaScript confirm 来仔细检查操作是否应该继续;但似乎无论我做什么,我都无法阻止它的发生。

<script type="text/javascript">
$(document).ready(function(){
$(".confirm").live("click",function(ev){
var nam = $(this).html(),
loc = $(this).attr('href'),
answer = confirm("Are you sure you want to delete:\n\n" + nam);
if (answer){
return true;
//window.location.href = loc;
}else{
ev.preventDefault();
return false;
window.location.href = window.location.href;
}
});
});
</script>

...

<div data-role="page" data-theme="a">
<div data-role="content">
<ul data-role="listview" data-inset="true">
...
<li><a class="confirm" href="?delete=#urlEncodedFormat(f.name)#">#f.name#</a></li>
</ul>
</div>
</div>

您可以看到,我尝试了 3 种不同的方法来阻止链接重定向页面,但它们似乎都没有达到我所希望的效果。我做错了什么?

最佳答案

您正在使用 .live,但不了解它是如何发挥魔力的。

.live 更改为 .bind 即可工作。

另外 - 阅读有关 .live 的内容,了解 .live 绑定(bind)到文档并在事件冒泡时捕获事件,因此现在阻止默认为时已晚行动或任何事情。

顺便说一句 - 如果您将代码放在 return 语句之后,那么有人可能会感到困惑,认为它实际上是出于某种奇怪的原因而运行的。

[编辑]

如果您希望它在没有 javascript 的情况下工作(渐进增强等),那么即使没有 javascript,您也应该使用服务器端生成的对话框来提出问题。

如果您不关心渐进增强并希望它仅在高端浏览器中工作,那么您为什么要为 href 烦恼呢?将 href 重命名为 data-href 并在用户确认时加载它。您无需阻止任何事情。

关于javascript - jquerymobile 确认似乎不会影响结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com