我的项目中有这样的东西:
<input onchange="doSomething();" .... />
<a href="url" ... ></a>
如果输入字段是聚焦的,我单击“a”链接,浏览器将转到URL,事件onchange仅在此之后触发。但我想首先运行函数“doSomething()”然后才转到url。如何更好地解决?
答案 0 :(得分:1)
删除内联javascript并使用jQuery。最好是为这些元素添加一些ID或类来定位它们。
$('input').on('change', doSomething);
$('a').on('click', function(e) {
e.preventDefault();
doSomething();
document.location.href = this.href;
});
假设doSomething()
不是异步的,因为它会完全不同。
答案 1 :(得分:-1)
您可以使用jQuery(未测试)
执行此类操作<a href="#">..</a>
$('a').click(function(){
dosomething();
$(this).attr('href', 'url');
});
答案 2 :(得分:-1)
而不是onchange事件,请在Input处使用onblur。
<input onblur="doSomething();" type="text" />
<a href="http://www.google.com">Hello</a>
从http://jsfiddle.net/Bhaarat/V3wT9
测试演示
如果需求只能用javascript满足那么为什么要创建jquery的开销呢?
请让我知道downvote的原因