抱歉,尽管有人问和回答了类似的问题,但我找不到有效的解决方案。
我有一个用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,它只是立即运行它,然后在单击按钮时也运行了它。
答案 0 :(得分:0)
执行element.addEventListener(onclose, function(){ closeModal(refreshPage); });
。
然后,您可以像这样设计closeModal
函数:
function closeModal(func){
func();
}
对函数的引用采用不带()
的变量形式:
function foo()
引用了foo
function getData()
引用了getData
function bar(); const barr = bar
或bar
引用barr