Jquery专注于活动

我有一个有焦点事件的文本框.
每当文本框失去焦点时(Tab,鼠标单击表单的任何其他部分),基于某些条件,将调用用户编写的功能,以消除警报.

现在,我的表单也有一个按钮,填充文本框后,当我单击按钮focusOut事件的文本框被调用而不是按钮单击事件.

如何停止按钮点击时调用文本框的foucusout事件?

("$textBox").focusout(function(){
validation;
alert("message");
});

("$btn").click(function(){
----
});

谁能帮我?

解决方法

我已将您的点击事件更改为mousedown(因此它首先触发)并使用变量来跟踪您的点击:
var buttonClicked = false;

$('#txt1').focusout(function(){
    if(!(buttonClicked)){
        alert('BlurEvent');
    }else{
        buttonClicked = false;
    }
});

$('#btn').mousedown(function(event){
    alert('ClickEvent');
    buttonClicked = true;
});

http://jsfiddle.net/924SZ/

编辑

var buttonClicked = false;

$('#txt1').focusout(function(){
    if(!(buttonClicked)){
        // do normal focusout code.
    }else{
        // button was clicked - dont execute some code.
        buttonClicked = false;
    }
    //this always executes regardless of focusout or button click
    var reply =confirm("Are you happy with the input?");
});

$('#btn').mousedown(function(event){

    buttonClicked = true;
});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...