eNANCE.JS库在加载jQuery之前运行的onscript负载
-
30-09-2019 - |
题
修改以给予: -
<script type="text/javascript" src="../_shared/EnhanceJS/enhance.js"></script>
<script type="text/javascript">
// Run capabilities test
enhance({
loadScripts: [
{src: 'js/excanvas.js', iecondition: 'all'},
'../_shared/jquery.min.js',
'js/visualize.jQuery.js',
'js/example.js'
],
loadStyles: [
'css/visualize.css',
'css/visualize-dark.css'
]
});
alert($);
</script>
我在警报上遇到“ $是未定义的错误”,大概是因为jQuery尚未加载。
注意 - 警报($)仅用于调试 - 我正在尝试使用该(例如$ $('Some -Selector')做某事 - 并且没有$(处理程序)或$(DOMISTLE)或$(DOMOTERD)。DREADYET等也不起作用 - jQuery没有加载,$未定义。
增强 OnScript负载 看起来他应该做纠缠,但是如果我添加
onScriptsLoaded:[runMyCode()]
然后
function runMyCode()
{
alert("runMyCode was called");
alert($);
}
第一个警报起作用,但$仍未定义。
如果我在按钮的单击事件上调用runmyCode,则可以工作。
因此,问题是 - 一旦所有脚本都用eNHANES.JS完成加载后,如何运行代码?
PS在IE8/FF3/Chrome7中验证的同一问题7
解决方案
我认为这就是您所追求的,请注意 onScriptsLoaded
直接用作回调, ,因此它应该是一个函数,而不是数组:
enhance({
loadScripts: [
{src: 'js/excanvas.js', iecondition: 'all'},
'../_shared/jquery.min.js',
'js/visualize.jQuery.js',
'js/example.js'
],
loadStyles: [
'css/visualize.css',
'css/visualize-dark.css'
],
onScriptsLoaded: function() { alert($); }
});
或更一般地用于函数,仅通过这样的参考:
onScriptsLoaded: runMyCode
原因 onScriptsLoaded:[runMyCode()]
“有点”的作品是 立即地 调用 runMyCode
功能(当时该行运行, 不是 脚本完成时)并从该结果制成数组。脚本完成后,这实际上会出现错误,因为 onScriptsLoaded
预计将是回调功能,而不是数组。
其他提示
我认为这可能是一个问题:
onScriptsLoaded:[runMyCode()]
您是否尝试过(假设数组符号正确):(编辑 - 这是 不是 正确的)
onScriptsLoaded: [runMyCode]
?第一个方式,您在设置库时调用您的功能。您只想传递对功能的引用。
编辑 实际上应该是:
onScriptsLoaded: runMyCode
我不知道阵列来自哪里。绝对没有在“ Enhance.js”文档中提及。
不隶属于 StackOverflow