从jQuery对话框按钮返回值而不是运行函数

时间:2014-06-06 15:08:02

标签: javascript jquery

我正在开发一个管理界面,我无法理解如何获得特定的模态行为。我正在使用jQuery。

我已经有一个模态对话框系统,openModal(settings)函数打开一个模态。根据设置,它将显示/隐藏或有时注入各种对话框。

我还有一个通用的确认对话框,这是我不确定如何工作的对话框。布局很简单:

<div id="confirmation-dialog">
    <h2>Are you sure?</h2>
    <button class="yes">Yes</button>
    <button class="no">No</button>
</div>

我可以硬编码每个按钮来做我需要做的事情,但我希望这更通用。理想情况下,我希望它的功能如下:(我知道这不起作用)

function deleteImportantThing() {
    if (confirmThis() == true) {
        // Delete the thing
    } else {
        // Do nothing, close dialog
    }
}

function confirmThis() {
    openModal({kind: "confirm"});
    // Check which button is clicked, then return true or false
}

我想我只是不知道足够的JavaScript来使这个工作,甚至不知道在哪里看。有什么建议吗?

我知道那里有模态对话框插件,但是我必须改变其余模态的工作方式来集成它们,如果可能的话,我想自己这样做。

1 个答案:

答案 0 :(得分:0)

带点的类名可能会有点繁琐,但您可以将jquery行为连接到这些按钮。也许下面的内容会让你(或至少接近):

// the two backticks are to escape the special 'dot' character within the class name
$(document).on('click', '.button\\.yes', function(e){
    e.preventDefault();
    return true;// not entirely sure this will work as a 'confirm', so you might instead need to call some other function that accomplishes the desired task
});

$(document).on('click', '.button\\.no', function(e){
    e.preventDefault();
    return false;
});