javascript/php for循环不工作?
我的phpcode是javascript/php for循环不工作?,php,jquery,for-loop,Php,Jquery,For Loop,我的phpcode是 <?php for($i = 1; $i < 5; $i++) { ?> <div class="upperBoxContainer" id="test1<?php echo $i; ?>"> <a href="#"><img id="test<?php echo $i; ?>" src="images/midimages/<?php echo $i; ?>.jpg">&
<?php for($i = 1; $i < 5; $i++) { ?>
<div class="upperBoxContainer" id="test1<?php echo $i; ?>">
<a href="#"><img id="test<?php echo $i; ?>" src="images/midimages/<?php echo $i; ?>.jpg"></a>
</div>
<?php } ?>
将事件包含在立即调用的函数表达式(IIFE)中
jQuery(文档).ready(函数(){
对于(var i=1;i<5;i++){
(职能(一){
$('#test1'+i).hover(函数(){
$('#test'+i).attr('src','images/midimageshover/'+i+'.jpg');
});
$('#test1'+i).mouseout(函数(){
$('#test'+i).attr('src','images/midimages/'+i+'.jpg');
});
})(i) );
}
});
您的代码正在重写$('#test1'+i)
的值,直到它达到4为止,因此在循环结束时,您只有$('#test14')
上面的代码通过使用IIFE创建不同的作用域,因此$('test1'+i)
不会被覆盖,相反,您将拥有$('test11')
,$('test12')
,$('test13')
,$('test14')
将事件包含在立即调用的函数表达式(IIFE)中
jQuery(文档).ready(函数(){
对于(var i=1;i<5;i++){
(职能(一){
$('#test1'+i).hover(函数(){
$('#test'+i).attr('src','images/midimageshover/'+i+'.jpg');
});
$('#test1'+i).mouseout(函数(){
$('#test'+i).attr('src','images/midimages/'+i+'.jpg');
});
})(i) );
}
});
您的代码正在重写$('#test1'+i)
的值,直到它达到4为止,因此在循环结束时,您只有$('#test14')
上面的代码通过使用IIFE创建不同的作用域,因此$('test1'+i)
不会被覆盖,相反,您将拥有$('test11')
,$('test12')
,$('test13')
,$('test14')
至少提供错误消息dude,对我来说,代码看起来没有逻辑错误,但代替了.hover use.mouseover$('#test1'+i).mouseover(function(){…只需将事件处理程序附加到upperBoxContainer
并使用jQueryPlease获取$i
的值,我们就可以轻松得多。请提供某种形式的错误消息,这样我们就可以帮助调试代码。多亏了!Jonathan de M.的解决方案消除了错误。至少提供了错误消息Dude,对我来说,代码看起来没有逻辑错误rs,但使用.mouseover$('#test1'+i).mouseover(function()代替.hover){…只需将事件处理程序附加到upperBoxContainer
并使用jQueryPlease获取$i
的值就容易多了。请提供某种形式的错误消息,这样我们就可以帮助调试代码。多亏了!Jonathan de M删除的错误。解决方案+1没有意识到必须在函数中封装这样的循环,但我猜如果我使用jquery,我就不会做for循环,所以我从来没有遇到过这个问题+1没有意识到必须在函数中封装这样的循环,但是我想如果我使用jquery,我就不会做for循环,所以我从来没有遇到过这个问题
jQuery(document).ready(function() {
for (var i = 1; i < 5; i++) {
alert('images/midimageshover/' + i + '.jpg');
$('#test1' + i).hover(function() {
$('#test' + i).attr('src', 'images/midimageshover/' + i + '.jpg');
});
$('#test1' + i).mouseout(function() {
$('#test' + i).attr('src', 'images/midimages/' + i + '.jpg');
});
}
});
jQuery(document).ready(function(){
for (var i = 1; i < 5; i++) {
(function(i){
$('#test1'+i).hover(function(){
$('#test' + i).attr('src', 'images/midimageshover/' + i + '.jpg');
});
$('#test1'+i).mouseout(function(){
$('#test' + i).attr('src', 'images/midimages/' + i + '.jpg');
});
})(i);
}
});