这是jquerymobile应用程序的一个片段。这是一个简单的文件管理器,允许删除文件,并且我想确认删除。我正在尝试使用javascript 确认来仔细检查一个操作是否应该继续;但似乎无论我做什么,我都不能停止它发生。jquerymobile确认似乎没有影响结果?
<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',但'.bind'也不适用于我,因为列表项是通过ajax加载的。正在浏览的文件系统要预先加载整个文件,所以它一次只加载一个目录。我尝试使用'.bind'(我实际上曾尝试'.click'),但它仍然没有做到我想要的。我可能只是尝试切换到jquerymobile对话框,看看我能否得到这个工作。 – 2011-05-30 20:03:01
是的。 'bind'与'live'不同。在使用“live”方法之前,我使用jquery完成了一个重要的项目,而且我必须全力以赴。你自己处理ajax调用,为什么不把新的点击绑定到你加载的任何东西?这就是它在旧时代的做法;)另外 - 请参阅我的编辑 – naugtur 2011-05-31 07:00:53
我使用了jqmobile对话框功能。我并不担心渐进增强功能,因为它是一个应用程序,用于我的家中,由我,在我的设备上使用,而且我无意将JS关闭。 – 2011-06-01 12:13:31