jQuery:如何在onblur之前先点击onclick?

mar*_*t15 7 jquery javascript-events

如果我目前专注于jQuery中的文本框,如何在onblur事件之前首先触发onclick事件?

预期输出:在texbox中的模糊事件之前首先触发按钮单击事件.提醒"mybtn onclick alert"

演示: http ://jsfiddle.net/Zk8Fg/

码:

<input type="text" name="fname" id="fname" value="" /><br />
<input type="button" name="mybtn" id="mybtn" value="Click Me" />

<script language="javascript">
$(document).ready(function() {
    myFunc();
});

function myFunc() {
    $('#fname').focus().blur(function() {
        alert('fname onblur alert'); 
    });

    $('#mybtn').click(function() {
        alert('mybtn onclick alert'); 
    });
}
</script>
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Spl*_*iFF 6

好吧,它可能是标准事件的一部分,事件首先触发,因此您可能不应该更改订单.你可以做的是推迟使用window.setTimeout短暂延迟的结果动作.

$('#fname').focus().blur(function() {
    window.setTimeout(function(){alert('fname onblur alert')},0.1); 
});
Run Code Online (Sandbox Code Playgroud)

我同意其他评论,看起来你应该重新思考如何解决这个问题,因为重新排序默认事件让我觉得这是一个可能有更优雅解决方案的蹩脚黑客.


Sam*_*son 3

如果输入字段当前已聚焦,则在不首先模糊当前焦点的情况下,您无法聚焦于另一个元素。无论您尝试做什么,可能都有更好的方法。

事件的可见记录:http://jsfiddle.net/Zk8Fg/3/

  • @marknt15不可能偏离标准事件顺序,但这并不意味着不可能实现您想要做的事情。让我们知道您想要完成什么,我们将尽力提供帮助。 (3认同)