当我在某个文件中编码时(例如:test.html):
<html>
<head>
<title>Test</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api-key',function(json) {
console.log(json);
});
</script>
</body>
</html>
但如果我在其他文件中做同样的事情说(main.js)
(function(){
$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api-key',function(json) {
console.log(json);
});
});
上面的代码没有在控制台中显示任何JSON数据,我在HTML中添加了main.js.
答案 0 :(得分:4)
因为在第二个片段中,该函数根本不执行。
以下代码,
(function(){
$.getJSON('... url ...', function(json) {
console.log(json);
};
});
可以简化为
(function(){});
根本不执行。您需要在要执行的函数末尾放置括号,如下所示:
(function(){}());
或者更好的是,在页面加载后使用jquery文档就绪的简写来正确执行。
$(function(){});
希望它有所帮助。
答案 1 :(得分:1)
您需要唤起您在main.js文件中创建的功能。如果用function() {}
包装代码,则定义函数是什么,但不调用它。你需要调用它并定义它。
(function(){
$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=045089075bc74354be01b34f6335d32b',function(json) {
console.log(json);
});
})(); // parenthesis call the function