【发布时间】:2016-08-17 09:31:18
【问题描述】:
[编辑:我试图只把我的代码的相关部分放在这里。我知道这导致了混乱。对于那个很抱歉。这是我可以创建的一个 sn-p 导致相同的问题。在此处添加 sn-p:]
加载 sn-p 后,单击按钮。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="hello">
Some text
<script>
jQuery(document).ready(function () {
func();
});
var a = 5;
function func() {
alert("Value is FIVE. Integer value: " +a);
}
</script>
</div>
<div id="mybtn" style="border: 2px solid black; padding:5px; background-color: yellow; width: 100px">CLICK</div>
<script>
var data = " \
Some text2 \
<script> \
jQuery(document).ready(function () { \
func(); \
}); \
var a = 6; \
function func() { \
alert('Value is SIX. Integer value: ' +a); \
} \
<\/script> ";
$('#mybtn').on('click', function(e) {
$('#hello').html(data);
});
</script>
我希望在单击按钮时看到六个 6(或者可能是五个 5)。但是请参阅 SIX 5。有趣的是正在调用新函数但正在使用旧值 (5)。在我的实际代码中,我的 func() 方法低于我调用它的位置,并且还在 settimeout(func...) 中调用它。试图了解正在发生的事情。
【问题讨论】:
-
我猜你没有关闭
script标签的事实就在示例代码中,对吧...? -
你没有在哪里定义
var1 = 4那么你为什么希望它被打印出来? -
此版本中缺少 。你能编辑你的代码并提供这部分的原件吗?
-
仅根据结果,似乎函数 func 没有被覆盖,但变量有。也许您可以仔细检查新代码中的 func 内容(在控制台中打印出来)
-
原因与
script更改有关,但实际的 JavaScript 没有更新。您必须“刷新”script标签才能解决此问题。如果您可以在小提琴中重现此内容,我很乐意向您展示解决方案
标签: javascript jquery html ajax innerhtml