我的网站正在使用确认对话框,我正在使用jQuery UI对话框。
我试图添加自己的按钮,基于从各种div读取值。我遇到的问题是,虽然我可以在正常情况下阅读文本,但我无法使用点击功能来使用我读过的值。
这就是我正在做的事情:
确认对话框HTML:
<div class="dialogConfirm"
numbuttons="2"
button0="Delete entirely"
button1="Delete from Main site only"
value0="-1"
value1="1">
<p class="dialogConfirmMessage">Do you wish to remove this slide from all sites on which it appears, or just from the Main site?</p>
</div>
(因此显示的按钮应该是&#39;完全删除&#39;以及&#39;仅从主站点删除&#39;。按钮的值应分别为-1和1)
定义初始对话框:
$( ".dialogConfirm" ).dialog({
autoOpen: false, // wait until an appropriate link is clicked
height: "auto", // set height and width automatically
width: "auto",
modal: true // other items on page are disabled
});
添加自定义按钮:
$('.dialogConfirm').each(function() {
var buttonsArray = [];
var arrayLength = $(this).attr('numButtons');
for(var ii=0; ii<arrayLength; ii++) {
var button = $(this).attr('button' + ii);
var value = $(this).attr('value' + ii);
var thisButton = {
text: button,
click: function() {
call_function(value);
}
}
buttonsArray.push(thisButton);
}
$( this ).dialog("option", "buttons", buttonsArray);
});
因此,当点击第一个按钮时,我想调用&#39; call_function&#39;,传入值&#39; -1&#39;。点击第二个按钮后,我想调用&#39; call_function&#39;,传入值1。
问题是&#39; call_function&#39;总是使用最近设置的值&#39;来调用,即1(我已尝试更改值等以进行检查,并且它肯定是它使用的最近的价值)。
所以它正确设置了这个功能,但保留了&#39;值&#39;作为变量,而不是作为一个集合号传递;然后评估价值&#39;单击按钮时。