JQuery模糊事件

时间:2009-08-14 14:28:03

标签: javascript jquery events

我在表单上有一个文本区域和一个“添加”按钮。默认情况下,文本区域显示为缩小和灰显。在焦点上,它将通过改变样式来突出显示。在模糊时,它应该回到以前的状态。在突出显示textarea的同时,添加注释应切换为可见和隐藏。问题是,当我在文本区域中输入数据并单击添加按钮时,模糊事件隐藏了添加按钮,并且永远不会触发添加按钮上的事件..任何解决方案?

似乎我的问题不明确...... 解决方案类似于执行模糊事件,除了下一个聚焦元素不是“添加”按钮...

3 个答案:

答案 0 :(得分:6)

如果输入的文字是否可以安全地假设您不想切换按钮,因为用户有意输入注释?如果是这样,你可以做类似的事情:

$(textBox).blur(function() {
  if($(this).val().length == 0) {
    //change the style
    //hide the button
  }
})

答案 1 :(得分:1)

只有在textarea 中没有输入任何内容时,您才需要取消高亮显示您的textarea并隐藏“添加”按钮

$('textarea').blur(function() {
    if($(this).val() != '') {
        // unhighlight textarea
        // hide "add" button
    }
});

这样,无论是否有焦点,用户总是会看到字段和按钮,无论它是否有焦点。

答案 2 :(得分:0)

在离开文本框的焦点和隐藏按钮之间稍微延迟,例如

function textBox_blur(evt) 
{
    window.setTimeout(
        function() { button.style.display = 'none'; },
        200 // length of delay in milliseconds
    );
}

这将为点击处理留出足够的时间(尽管您可能希望使用延迟的长度)