父元素中的复选框行为

时间:2014-07-09 13:58:25

标签: javascript checkbox dojo

我有可点击的div,里面有复选框。我想在点击复选框或父div后执行一些操作。

我找到了这个解决方案,但我认为这不是最好的方法。我不希望父元素上的事件反复出现。我在parentDivCheckBtn click-handler中获得了前一个复选框状态myCheckbox.get('checked'),但在checkbox-handler中更改了复选框状态,此处理程序的代码非常相似。

function saveSettings(){
                        var valueCheckbox = !myCheckbox.get('checked');
                        valueCheckbox.set('checked', valueCheckbox );
                        myUtil.someAction();
                    }

myCheckbox.on('click', function(e){                     
                        var valueCheckbox = myCheckbox.get('checked');                          
                        myUtil.someAction();
                        e.cancelBubble = true;
                        e.stopPropagation();    

                    });

var parentDivCheckBtn = $('#parentDivCheckBtn');
    parentDivCheckBtn.on('click', function(event){                      
        saveSettings();                     
});

是否存在任何使其简单明了的方法?

1 个答案:

答案 0 :(得分:0)

您可以使用onChange事件作为复选框。

require(["dijit/form/CheckBox", "dojo/domReady!"], function(CheckBox){
    var checkBox = new CheckBox({
        name: "checkBox",
        value: "agreed",
        checked: false,
        onChange: function(b){ alert('onChange called with parameter = ' + b + ', and widget value = ' + this.get('value') ); }
    }, "checkBox").startup();
});