为什么我会为此代码获取该代码? 我如何正确传递(或不传递)事件?
(原始问题和下面代码的答案是Extracting common logic to a reusable function in JavaScript - 这个问题与方法有关,这个问题与event
的问题有关,这看似不同且更具体。)
$(function(){
var updateUi = function (event) {
event.preventdefault();
$("span.show_hide").toggleclass("shown hidden");
$("table").toggleclass("wide narrow");
};
$("a[data-toggle-description-length]='toggle'").click(function(event){
updateUi(event);
$.get('/toggle_full_details');
});
$("a[data-toggle-description-length-refocus]='toggle'").click(function(event){
updateUi();
$("input[type='text']:first").focus(); // focus
$.get('/toggle_full_details');
});
});
我该如何避免呢?
答案 0 :(得分:15)
错字:
由于错字,这是一个真正的类型错误。见下文。
event.preventDefault();
代替!进一步添加额外的:event.preventDefault()不是jQuery的东西。这是一个DOM事件模型的东西。从现在开始,我将把jQuery留在板凳上,因为它在内部处理事件的方式略有不同,所以如果我们可以互换地引用这两个事件,它只会引起混淆和不正确的信息。
preventDefault
这可以是评论,但为什么不回答。 :)
如果调用此方法,则事件的默认操作不会 触发。
答案 1 :(得分:4)
你拼错了大声笑
preventDefault()
不是preventdefault()