不确定如果可以这样做,我接近它的方式。这没什么。我正在回复来自php上传脚本的图片,每个img都有一个唯一的ID,从A1,A2,A3,A4等开始。现在我可以选择那个img ID并创建我想要的动作,但是我必须为每个ID做这个,我不能在创建新的时候这样做,我怎么告诉jQuery对A1做同样的事情( A2,A3)某种增量。
JS
$(document).ready(function(){
$("#1 ").hover(
function(){
$("#A1").slideDown();
},
function(){
$("#A1").slideUp();
});
});
$(document).ready(function(){
$("#2 ").hover(
function(){
$("#A2").slideDown();
},
function(){
$("#A2").slideUp();
});
});
PHP
$i= 0; while(($file = $myDir->read()) !==false){
if(!is_dir($file)){
$i++;
//echo "Filename: $file<br/>";
echo "<div id='images'>";
echo "<p>";
echo "<a id='$i'href=\"display/$file\"><img src=\"thumbs/$file\" /> </a>\n";
echo "</p>";
echo"</div>";
echo "<div id='imageHolder' >";
echo "<img id='A$i' style='display:none' src=\"display/$file\" />";
echo"</div>";
}
}
答案 0 :(得分:2)
您的新商品是如何生成的?在页面加载时,还是通过jQuery使用ajax请求?在任何一种情况下,您都可以选择以某种方式开始的所有元素(即“A”):
$("a").hover(
function(){
$(this).find(img[id^='A']).slideDown();
},
function(){
$(this).find(img[id^='A']).slideUp();
});
如果我离开这里,有人可以随时帮助我。
<强>更新强>
谢谢你们 - 这样的事情怎么样?
$("a").hover(
function(){
id = $(this).attr('id');
$("#A"+id).slideDown();
},
function(){
id = $(this).attr('id');
$("#A"+id).slideUp();
});
这将查找页面上的所有链接,并使用ID(根据您的代码)查找幻灯片项目。如果你是动态创建它们,你会想把它放在一个函数中并在ajaxComplete上再次调用它。
答案 1 :(得分:1)
我会有一个包含所有对象ID的javascript数组。然后你可以循环遍历数组,并为每个id完成你想要做的工作。
答案 2 :(得分:0)
将jQuery.live()用于“永久”事件处理程序(如果您正在向页面动态添加图像)或使用jQuery.each()迭代所有实例。
最后它会是这样的(不使用直播事件):
$("a:has(img.my_image)").each(function(){
$(this).hover(
function(){$(this).slideDown();},
function(){$(this).slideUp();}
);
});