jquery切换默认调用preventDefault(),因此默认值不起作用.你不能点击一个复选框,你不能点击链接等
是否可以恢复默认处理程序?
我有一个网页,我已阻止所有提交按钮的默认操作,但我想重新启用按钮上的默认提交操作我该怎么办?
我目前正在使用以下方法阻止默认操作:
$("form").bind("submit", function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我使用以下方法成功完成了此操作:
$(document).ready(function(){
$("form:not('#press')").bind("submit", function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
但是,当单击按钮时,我可以动态执行此操作吗?
我正在渲染一个带有反应的链接:
render: ->
`<a className="upvotes" onClick={this.upvote}>upvote</a>`
Run Code Online (Sandbox Code Playgroud)
然后,上面我有upvote函数:
upvote: ->
// do stuff (ajax)
Run Code Online (Sandbox Code Playgroud)
在链接之前我已经跨越那个地方,但我需要切换到链接,这就是麻烦 - 每次点击.upvotes页面都会刷新,到目前为止我尝试过:
event.preventDefault() - 无法正常工作.
upvote: (e) ->
e.preventDefault()
// do stuff (ajax)
Run Code Online (Sandbox Code Playgroud)
event.stopPropagation() - 不工作.
upvote: (e) ->
e.stopPropagation()
// do stuff (ajax)
Run Code Online (Sandbox Code Playgroud)
返回false - 不工作.
upvote: (e) ->
// do stuff (ajax)
return false
Run Code Online (Sandbox Code Playgroud)
我也在我的index.html中使用jQuery尝试了以上所有内容,但似乎没有任何效果.我该怎么做,我做错了什么?我已经检查了event.type,click所以我想我应该能够以某种方式避免重定向?
对不起,对于React来说,我是新手.
谢谢!
我知道这个确切的问题是问在这里,但我需要做的,所以我想我会给出一些示例代码,并解释了一下,答案并没有为工作...
$(document).keypress(
function (event) {
// Pressing Up or Right: Advance to next video
if (event.keyCode == 40 || event.keyCode == 39) {
event.preventDefault();
$(".current").next().click();
}
// Pressing Down or Left: Back to previous video
else if (event.keyCode == 38 || event.keyCode == 37) {
event.preventDefault();
$(".current").prev().click();
}
}
);
Run Code Online (Sandbox Code Playgroud)
它基本上禁用箭头键将它们用于其他东西,但是:
$(document).keypress(function () { });
Run Code Online (Sandbox Code Playgroud)
不再启用默认功能...我需要它来滚动页面而不必为它创建滚动功能...
有任何想法吗?
谢谢,
马特