Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用对象创建操作并向jquery按钮添加操作?_Jquery_Object_Button - Fatal编程技术网

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

如何使用对象创建操作并向jquery按钮添加操作?,jquery,object,button,Jquery,Object,Button,通过首先定义一个对象,我已经成功地将按钮传递给jQueryUI对话框 我想替换一些非常基本的,更适合我需要的对话框 下面说明了我正在做的事情 我为按钮添加标签,并按如下方式为每个按钮指定操作 function defineButtons(){ var buttons={}; buttons['Reset']=function(){ alert("Reset"); alert("Something else"); } buttons['Close']=function(){

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

我想替换一些非常基本的,更适合我需要的对话框

下面说明了我正在做的事情

我为按钮添加标签,并按如下方式为每个按钮指定操作

function defineButtons(){
var buttons={};
buttons['Reset']=function(){
    alert("Reset");
    alert("Something else");
}
buttons['Close']=function(){
    alert("Close");
    alert("Again");
}
return buttons;
var buttons=defineButtons();
$.each(buttons,function(key,value){
    // What goes here?
});
}

现在我想将这些按钮显示为jqueryui按钮,单击每个按钮时,为每个按钮运行两个相应的警报

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

function defineButtons(){
var buttons={};
buttons['Reset']=function(){
    alert("Reset");
    alert("Something else");
}
buttons['Close']=function(){
    alert("Close");
    alert("Again");
}
return buttons;
var buttons=defineButtons();
$.each(buttons,function(key,value){
    // What goes here?
});
不幸的是,我不知道在循环中放什么

如果这是一个有效的问题,有人能帮忙吗

在很大程度上,由于madalin ivascu在下面的回答,以下内容似乎添加了操作并应用了jquery ui主题

$(函数(){
变量按钮=定义按钮();
$。每个按钮、功能(键、值){
$('body')。追加(''+key+'');
var vclass='.'+键;
$('body')。在('click',vclass,value)上;
$(vclass.button();
});
函数定义按钮(){
var按钮={};
按钮['Reset']=函数(){
警报(“重置”);
警惕(“其他事情”);
}
按钮['Close']=函数(){
警报(“关闭”);
警惕(“再次”);
}
返回按钮;
}
});

您可以尝试以下方法:

 $.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
});
$。每个按钮、功能(键、值){
$('body').append('A button元素');//在页面上追加元素
var vclass='.'+键;
$('body')。在('click',vclass,value);//委托click事件
});

演示:

看起来你已经使用了这个动作,所以这很好。但是,当我在jquery ui css中链接时,我似乎无法将jquery ui样式应用于按钮。我认为,只需将button()应用于每个按钮,就可以实现这一点。我现在不知道该怎么做。正如您在我的JSFIDLE中看到的,这些样式是使用相应的ui类应用的。是的,并且应用了这些样式。然而,我认为可能有一种更干净的方法来实现这一点,即应用链接的主题。也许可以这样做:“$(“.selector”).button();”@wurzel_gummidge您也可以这样做