获得/失去焦点时更改jQuery Dialog标题栏的样式

时间:2011-06-27 13:07:18

标签: javascript jquery jquery-ui

我正在尝试创建一个包含两个jQuery对话框的简单页面,其功能是在每个获取或丢失焦点时更改其标题栏颜色。换句话说,聚焦窗口具有不同的标题栏颜色,这使得更容易区分具有焦点。 我有这段代码:


$(function () {
  $(".window").dialog({
    focus: function (event, ui) {
      $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
    }
});

但我不知道如何在焦点事件中检测它是否会失去焦点。

3 个答案:

答案 0 :(得分:3)

试试这个

http://jsfiddle.net/JqQA6/

我需要相同的解决方案。

答案 1 :(得分:1)

答案 2 :(得分:1)

仅在获得焦点时调用对话框focus事件。股票jQuery UI对话框没有失去焦点的概念。

一个简单的解决方案是从ui-state-error处理程序中的每个对话框中删除focus类,然后将其添加到刚收到焦点的那个。

我实际上已经编写了一个功能齐全的jQuery UI插件,它在对话框中添加了.blur事件,并在最顶层的框关闭时处理重新排序的堆积框。我会检查是否允许我发布它。