我已经成功地通过首先定义一个对象将按钮传递给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;
答案 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
});