我正在尝试为backgroundColor的属性(dijit/form/TextBox)设置动画。当这不起作用时,我开始拔头发:

var node = dom.byId("myTextBox");
fx.animateProperty( {
    node : node,
    duration : 750,
    properties : {
        backgroundColor : {
            start : "yellow"
        }
    }
}).play();


但是,这可行:

var node = dom.byId("myTextBox");
fx.animateProperty( {
    node : node.parentNode.parentNode, // grandparent of "myTextBox"
    duration : 750,
    properties : {
        backgroundColor : {
            start : "yellow"
        }
    }
}).play();


那应该是这样工作的吗? this page上的示例不是必需的,但是也没有使用TextBox的示例。

附带问题:是否有更直接的等效于JQueryUI的highlight效果?那就是我要的。

最佳答案

最好使用dijit.byId("myTextBox")引用对小部件对象的引用。然后,您可以根据要突出显示的内容引用myTextBox.domNodemyTextBox.focusNode。我不确定是否要突出显示实际的文本输入区域或背景,但是this simple jsfiddle会同时演示这两个区域。您的代码将更改为:

var textbox = dijit.byId("myTextBox");
fx.animateProperty( {
    node : textbox.focusNode // If you are trying to highlight the input background
    duration : 750,
    properties : {
        backgroundColor : {
            start : "yellow"
        }
    }
}).play();

10-06 00:14