如何使用对象创建jquery按钮并添加操作?

时间:2016-12-21 08:22:13

标签: jquery object button

我已经成功地通过首先定义一个对象将按钮传递给jquery ui对话框。

我想将对话框替换为非常基本的,更适合我需要的东西。

以下说明了我在做什么。

我标记按钮并为每个按钮分配操作,如下所示。

function defineButtons(){
var buttons={};
buttons['Reset']=function(){
    alert("Reset");
    alert("Something else");
}
buttons['Close']=function(){
    alert("Close");
    alert("Again");
}
return buttons;

}

我想现在将这些按钮显示为jquery ui按钮,当点击每个按钮时,为每个按钮运行两个相应的警报。

我想我可以通过循环遍历上面定义的对象来实现这一点,如下所示。

var buttons=defineButtons();
$.each(buttons,function(key,value){
    // What goes here?
});

不幸的是我不知道在循环中放什么。

如果这是一个有效的问题,是否有人能够提供帮助?

非常感谢madalin ivascu的回答,以下内容似乎添加了动作并应用了jquery ui主题。



$(function() {

var buttons = defineButtons();
$.each(buttons, function(key, value) {
  $('body').append('<div class="' + key + '">'+key+'</div>');
  var vclass = '.'+key;
  $('body').on('click',vclass,value);
  $(vclass).button();
});


function defineButtons(){
    var buttons={};
    buttons['Reset']=function(){
        alert("Reset");
        alert("Something else");
    }
    buttons['Close']=function(){
        alert("Close");
        alert("Again");
    }
    return buttons;
}

  });
&#13;
<link href="https://code.jquery.com/ui/1.11.1/themes/ui-lightness/jquery-ui.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script src="https://code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

 $.each(buttons, function(key, value) {
  $('body').append('<button class="ui-button ui-widget ui-corner-all ' + key + '">A button element</button>');//append the elements on the page
  var vclass = '.'+key;
  $('body').on('click',vclass,value);//delegate the click event
});

演示:https://jsfiddle.net/tcbbcogd/