将单击功能添加到Button

时间:2015-08-08 11:23:36

标签: javascript jquery

var el = createWindow(WindowContent, {
    "id": window.id,
    "titleBar": {
        "enabled": true,
        "titleButtons": [
            {
                "type": "close",
                click : function(){ //function
                    window.close();
                }
            }
        ]
    }
});


function createWindow(el, prop){
...
        if(prop.titleBar.titleButtons.length !== undefined){
            for(var i = 0; i < prop.titleBar.titleButtons.length; i++){
                button = prop.titleBar.titleButtons[i];
                console.log(button);
                $('#'+prop.id).find("button[type='"+button.type+"']").click(button.click);
            }
        }
 }

如何将prop对象的click函数添加到我的按钮? 它什么都不做。

$('#'+prop.id).find("button[type='"+button.type+"']").click(button.click());

我收到错误因为button.click不是函数

使用$('#'+prop.id).on("click", "button[type='"+button.type+"']", button.click);代替$('#'+prop.id).find("button[type='"+button.type+"']").click(button.click());

解决了问题

2 个答案:

答案 0 :(得分:2)

试试这个:

$('#'+prop.id).find("button[type='"+button.type+"']").click(function(){
   console.log('event click called');
 });

答案 1 :(得分:1)

在第二个示例中,您没有为click事件分配函数,而是调用函数的结果。尝试从

中删除最后的两个括号
.click(button.click());

要:

.click(button.click);

之后,尝试只运行.find语句,看看jQuery是否返回了你的按钮:

$('#'+prop.id).find("button[type='"+button.type+"']")

如果没有,我怀疑你的按钮[type = close]不正确