0

假设我有一个动态创建“确认或取消”对话框并将点击事件绑定到“确定”和“取消”链接的函数。

function confirmOrCancelDialog() {
    //already created $dialog to popup on screen

    $dialog.find('a.confirm').click(function() {
        //close dialog
        return true;
    });

    $dialog.find('a.cancel').click(function() {
        //close dialog
        return false;
    });

}

然后,我从另一个函数调用此对话框的创建。我想将交互的结果传递给调用函数。

function performAction() {
    var clickResult = confirmOrCancelDialog();

    if (clickResult === true) {
        //do some stuff
    }
}

任何有关如何执行此操作的指导将不胜感激。谢谢。

4

3 回答 3

3
function confirmOrCancelDialog(someStuff) {
    //already created $dialog to popup on screen

    $dialog.find('a.confirm').click(function() {
        //close dialog
        someStuff(true);
        return true;
    });

    $dialog.find('a.cancel').click(function() {
        //close dialog
        someStuff(false);
        return false;
    });

}
function performAction() {
    confirmOrCancelDialog(function(clickResult){
        if (clickResult === true) {
            //do some stuff
        }
    });
}
于 2013-10-09T22:35:22.097 回答
0

您可以将点击事件添加到对话框对象中的所有锚点,然后检查单击的锚点是否具有确认类(或取消,任一类)并相应地返回:

$('.dialog a').on('click', function(event) {
  if ($(this).hasClass('confirm')) { return true; }

  return false;
});
于 2013-10-09T22:38:18.130 回答
0

尝试这个:

function confirmOrCancelDialog(callback) {
  //already created $dialog to popup on screen
  $dialog.find('a.confirm').click(function() {
    //close dialog
    callback(true);
  });

  $dialog.find('a.cancel').click(function() {
    //close dialog
    callback(false);
  });
}

function performAction() {
  confirmOrCancelDialog(function(clickResult){
    if (clickResult === true) {
      //do some stuff
    }
  });
}
于 2013-10-09T22:43:31.227 回答