此问题已在此处有答案:
Why is callback function executed first in javascript? [duplicate](4个答案)
上个月关门了。
我有以下代码,它将div#B加载到div#a中,然后对div#B执行一些操作:
<html>
<head>
<script src="scripts/jquery.js"></script>
</head>
<body>
<script>
document.addEventListener('DOMContentLoaded', e => {
$('#a').load('test2.html', {},
// function() {
// console.log($('#b').attr('id')); // returns "b"
// $('#b').html('content in #b');
// console.log('completed');
// }
fillB()
);
});
function fillB(option=null) {
console.log($('#b').attr('id'));//returns undefined :(
$('#b').html('content in #b: '+option);
console.log('completed');
}
</script>
<div id="a">placeholder</div>
</body>
</html>
其中test2.html包含:
<div id="b"></div>
我的目标是将回调函数(注解掉)改为命名函数fillB(),这样我就可以在其他地方重用代码。但是,当我这样做时,选择器$('#b')
是undefined
。如何让函数fillB()在被调用时正确执行选择器?
**编辑:**我还希望能够控制传递给fillB()
的参数。
2条答案
按热度按时间dsf9zpds1#
你可以这样做。它要短得多,做同样的事情,更少的地方出错
我还将vanilla load事件更改为jQuery事件
r7xajy2e2#
显然,我必须在一个匿名的回调函数中传递命名的回调函数: