首先,除了 PHP 变量之外,您还有一百万零一个问题。首先,您真的不应该再使用该onmouseover
属性了。看看JavaScript 和事件 - 最佳实践
所以为了用更好的代码复制你的问题,你会做这样的事情。
<!-- This should be in an external JS file -->
<script>
// IE Event Listener "Polyfill"
var addEvent = function(element, event, callback) {
if (document.addEventListener) {
element.addEventListener(event, callback);
} else {
element.attachEvent('on' + event, callback);
}
};
addEvent(document, 'load', function() {
var element = document.getElementById('element');
attachEvent(element, 'onmouseover', function() {
myTimer = setTimeout('imageswitcher(<?php echo $imagename; ?>)', 2000);
});
}
</script>
<!-- Not an actual element, used for example purposes only -->
<element id="element"></element>
变量应该使用'var'分配
您的下一个问题是您的分配myTimer
没有var
. 现在,这里不太可能导致问题,最好记住这一点。
var myTimer = setTimeout('imageswitcher(<?php echo $imagename; ?>)', 2000);
函数字符串
我不知道您要做什么,但是您将字符串而不是函数传递给setTimeout
. 让我们解决这个问题。
var myTimer = setTimeout(function() {
imageswitcher(<?php echo $imagename; ?>);
}, 2000);
解决问题
现在,让我们在这里解决实际问题。
$imagename
可能是一个字符串,您在 javascript 中没有考虑到该字符串。让我们解决这个问题。
imageswitcher('<?php echo $imagename; ?>');
把它们放在一起
<!-- This should be in an external JS file -->
<script>
var addEvent = function(element, event, callback) {
if (document.addEventListener) {
element.addEventListener(event, callback);
} else {
element.attachEvent('on' + event, callback);
}
};
addEvent(document, 'load', function() {
var element = document.getElementById('element');
attachEvent(element, 'onmouseover', function() {
var myTimer = setTimeout(function() {
imageswitcher('<?php echo $imagename; ?>');
}, 2000);
});
};
</script>
<!-- Not an actual element, used for example purposes only -->
<element id="element"></element>