Javascript-将函数作为参数传递

时间:2018-08-29 22:02:44

标签: javascript function arguments

抱歉,尽管有人问和回答了类似的问题,但我找不到有效的解决方案。

我有一个用openModal()打开的模态,它的右上角有一个关闭按钮。当我单击关闭时,我希望根据所传递的参数来运行一个函数。

function openModal(onclose){
    //insert modal
    var modal = document.createElement('div');
    body.appendChild(modal);

    //insert close button
    var modalClose = document.createElement('span');
    modalClose.innerHTML = 'Χ'
    modalClose.classList.add('modalClose');
    modal.appendChild(modalClose);

    //call default function on click of close button
    modalClose.addEventListener("click", closeModal);


    //call custom function on click of close button
    if(beforeclose !== undefined){
        modalClose.addEventListener("click", onclose);
}

然后我将调用openModal('refreshPage()')之类的东西,其中refreshPage仅在单击关闭按钮时运行。

感谢您能为我提供的任何帮助-我应该说我尝试在addeventlistener中使用eval,它只是立即运行它,然后在单击按钮时也运行了它。

1 个答案:

答案 0 :(得分:0)

执行element.addEventListener(onclose, function(){ closeModal(refreshPage); });

然后,您可以像这样设计closeModal函数:

function closeModal(func){
   func();
}

对函数的引用采用不带()的变量形式:

    通过function foo()引用了
  • foo
  • 通过function getData()引用了
  • getData
  • 通过function bar(); const barr = barbar引用
  • barr