从嵌套的单击函数返回函数值

时间:2018-05-16 05:35:56

标签: jquery

当调用openModal时,如何获得success而不是undefined

function deleteImg(model, name, id) {
  return 'success';
}
  
function openModal(model, name, id){
  $('#button').show();
  $('#button').on('click', function() {
//   console.log( deleteImg(model, name, id) );
     return deleteImg(model, name, id);
  })
}

console.log(openModal(1,2,3));
#button {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button">
Button
</button>

我也尝试过使用$.when().done();

function openModal(model, name, id){
    var status;
    $.when(
      $('#button').show(),
      $('#button').on('click', function() {
//      console.log( deleteImg(model, name, id) );
        status = deleteImg(model, name, id);
      })
    ).done(
      function(){
        return status;
      }
    )
}

由于

1 个答案:

答案 0 :(得分:1)

你可以使用回调模式,只需将一个函数作为回调函数传递,然后从点击监听器中调用它。

function deleteImg(model, name, id) {
  return 'success';
}

function openModal(model, name, id, cb){
  $('#button').show();
  $('#button').on('click', function() {
     // return deleteImg(model, name, id);
     cb(deleteImg(model, name, id));
  })
}

openModal(1,2,3, function (res) {
    console.log(res);
});