jQuery UI对话框按钮 - 使用变量

时间:2016-12-21 18:33:03

标签: javascript jquery jquery-ui-dialog

我的网站正在使用确认对话框,我正在使用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;单击按钮时。

0 个答案:

没有答案