我有以下代码,它成功地将urltostore.php
存储为mysite.option
,然后我可以将其用作全局变量。
<script>
$(document).data('mysite.option', "urltostore.php");
</script>
<script>
alert($(document).data('mysite.option'));
</script>
如果我将$(document).data
函数放在$(document).ready
函数中,它将停止工作:
<script>
$(document).ready(function(){
$(document).data('mysite.option', "urltostore.php");
});
</script>
<script>
alert($(document).data('mysite.option'));
</script>
最后,我想将$(document).data
函数放在if条件中:
<script>
$(document).ready(function(){
if (leveldeterminant == 0{
$(document).data('mysite.option', "urltostore.php");
}
});
</script>
<script>
alert($(document).data('mysite.option'));
</script>
答案 0 :(得分:0)
由于JavaScript事件循环的工作方式和$(document).ready()
的行为,它无法正常工作。如果您未将$(document).data('mysite.option', "urltostore.php");
放入$(document).ready()
,则会立即调用它,并在您需要时随时可用。
但是,当它粘贴在$(document).ready()
内时,包含它的匿名函数计划在DOM加载完成后执行,因此它实际上并没有立即执行。它等待DOM就绪事件,即在您调用alert($(document).data('mysite.option'));
之后。
如果您在alert($(document).data('mysite.option'));
中遇到$(document).ready()
,我希望它能按您的预期运作。
至于添加条件,它应该正常工作,无论你是否坚持$(document).ready()
。
如果leveldeterminant
等于0:
if (leveldeterminant == 0) {
$(document).data('mysite.option', "urltostore.php");
}