Tag: preventdefault

如果条件为false则阻止默认

我有一个链接。 当有人点击它时我想检查一些条件然后让它工作。 如果为false则应该阻止默认操作。 $(“.pager-next a.active”).click(function(event) { if (!a == 1) { event.preventDefault(); } }); 该链接仅在a等于1时才有效。 以上代码是否正确。 如果满足特定条件,则a设置为1 。 该链接仅在满足条件时才有效。

e.preventDefault()能否被撤销?

我正在寻找一种方法来.preventDefault()进行转换,然后允许默认行为 $(‘.withTrans’).click(function(e){ e.preventDeault(); $(this).animate(‘opacity’,’0′,300,function(){ e.resumeDefault(); // does something like this exist? }); })

在单击处理程序甚至被调用之前,正在检查复选框

我有以下几个片段: http : //jsfiddle.net/L7rne/5/和http://jsfiddle.net/L7rne/6/ 事实certificate,如果您在click事件处理程序中暂停执行脚本,那么即使存在event.preventDefault() ,也会选中该复选框。 我在Firefox 7和Chrome 15中尝试了这一点,两者的行为方式相同。 我几乎可以肯定这是一个正确的行为,但不知怎的,我找不到任何参考为什么它是这样的。 有人能指出我正确的方向吗? 编辑: 当你选中复选框后,它变得更加有趣: http : //jsfiddle.net/L7rne/8/ – 复选框变为未选中状态,但其值仍保持检查状态 http://jsfiddle.net/L7rne/9/ – 复选框变得不受控制,但它的价值变得虚假 (这与使用checkbox.checked和checkbox.getAttribute(‘checked’)纯Javascript代码一致,所以我没有粘贴另一个jsfiddle代码段) EDIT2: 其中一条评论中的COBOLdinosaur向我指出 : http : //www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation ,但恕我直言,这只能证实我的观点…

通过提交的onclick事件阻止提交按钮

我想阻止提交onclick事件的提交按钮: $j(‘form#userForm .button’).click(function(e) { if ($j(“#zip_field”).val() > 1000){ $j(‘form#userForm .button’).attr(‘onclick’,”).unbind(‘click’); alert(‘Sorry we leveren alleen inomstreken hijen!’); e.preventDefault(); return false; } }); 这是提交按钮: Opslaan 它将显示“警报”function并删除onclick事件,但无论如何都会提交表单。 在提交之前手动删除onclick事件将解决问题。 然而,这是核心function,我不想删除它。 编辑: 它肯定是由onclick选择器引起的。如何强制我的jQuery脚本立即重新加载onclick事件? 在jquery代码之前添加: $j(‘form#userForm .button’).attr(‘onclick’,”); 将解决问题..但是我的validation将不再适用…

event.preventDefault vs event.stopPropagation

有人可以解释event.preventDefault()和event.stopPropagation()之间的区别吗? 我有一张桌子,在那张桌子里我有一个img标签。 当我点击img标签时,我想看一个弹出窗口。 但是我也想停止选择多行,所以我使用: $(“table.items tbody tr”).click(function(event) { event.stopPropagation(); }); 当我使用js代码时,弹出窗口不会出现; 如果我删除了js代码,弹出窗口就可以了。 $(“.info”).live(“click”,function(e){ //console.log(‘ok’); e.stopPropagation(); var elem = $(this); var id = $(this).attr(“id”).replace(“image_”,”container_”); $(‘#’+id).toggle(100, function() { if($(this).css(‘display’) == ‘block’) { $.ajax({ url: “$url”, data: { document_id:elem.attr(‘document_id’) }, success: function (data) { $(‘#’+id).html(data); } }); } }); }); 为什么?

在Chrome中按Ctrl + S preventDefault

我想在Chrome中捕获Ctrl + S ,并阻止默认浏览器行为来保存页面。 怎么样? (只是发布问题和答案,因为我在这之后很长一段时间没有找到解决方案)

IE8的PreventDefault替代方案

情况 :尝试修改VideoJS.com以使用IE8和Youtube Chromeless API。 问题 :进度条拖动不起作用(event.preventDefault()出错;根据调试,’不支持’) 演示 : http : //alpha.dealertouch.mobi/video/demo.html 我尝试了什么 :当它是IE时跳过’preventDefault’,但如果我这样做,我将失去进度条的function(向前和向后拖动/点击) 问题 :解决IE8此问题的最佳方法是什么?