我有这个:
<!-- Javascript -->
<script>
$(function () {
var availableTutorials = [
"MacKenzie, Randy",
"Paciorkowski, Lev",
"Johnston, Daniel",
"Lionti, Michael",
];
$(".automplete-2").autocomplete({
source: availableTutorials,
autoFocus: true
});
});
</script>
但我想在外部javascript数据数组中指定名称;比如src =&#34; players.js&#34 ;;
如何在不破坏javascipt的情况下做到这一点?
答案 0 :(得分:0)
您只需将它们添加到单独的外部javascript文件中,并将该文件包含在当前文件之前(您要使用这些名称的位置)
例如,在您服务器上某处的players.js文件中,您有此代码
window.players = [
"John", "Mike"
]
然后,在标题中包含播放器列表以预加载它们以便快速使用。
<script src="players.js"></script>
然后,在其他地方
<script>
$( ".automplete-2" ).autocomplete({
source: window.players,
autoFocus: true
});
});
</script>
如注释中所述,您通过向窗口对象添加属性来污染全局命名空间。它很好,但您应该尝试将所有特定于站点的属性添加到一个不太可能与某些第三方库重叠的自定义子属性中。
例如:
SiteData.players = []; // your preloaded player list
SiteData.config = {
apiUrl: 'some url',
env: 'test'
}
SiteData.userPreferences = {
playersPerPage: 10,
colorScheme: 'dark'
...
}
等等。 这样,在全局命名空间中只有1个属性。