2013-08-13 3 views
-1

Как только вызывается preventDefault();, как я могу вызвать это событие, которое было просто заблокировано?предотвращение по умолчанию, а затем применение по умолчанию в javascript

Например:

$("a").click(function(e){ 

    setTimeout(function(){ 
     e.huh? // run original function 
    },5e3); 
}); 

спасибо!

+0

* это должно быть легким * Не совсем; как только по умолчанию будет предотвращено, вы не сможете его вызывать. Но что вы подразумеваете под «оригинальной функцией»? По умолчанию для якорного щелчка следует следовать ссылке, это то, что вы пытаетесь сделать? – bfavaretto

+0

@bfavaretto не обязательно, могут быть другие события, связанные с ним. Один из вариантов, о котором я могу думать, это скопировать исходную функцию, а затем запустить ее, но я смотрю, есть ли лучший способ. –

+0

спасибо @FelixKling, вот и все! –

ответ

1

Это будет работать

$("a").one("click", function (e) { 
    e.preventDefault(); 
    var elem = this; 
    setTimeout(function() { 
     elem.click(); 
    }, 2000); 
}); 

http://jsfiddle.net/XyETg/3/

+0

Это не приведет к событию реального клика. – jack

+0

На контратаке @jack этот * будет * делать реальный клик. jQuery - это «подделка». – bfavaretto

+0

Нет, это не так. Привязка вызова другого слушателя window.open завершится неудачно, если * default * будет имитирован. – jack

Смежные вопросы