我使用此代码循环遍历每个“.accessoryrow”,然后选择“dialog”+ counter和“.see-details”+ counter。所以第一次循环时它会选择dialog1类并看see-details1类;第二次对话框2,请参阅详细信息2,依此类推。我想我没有正确地向选择器添加计数器。请指正。谢谢
CODE:
var counter = 1;
$(function () {
$(".accessoryrow").each(function() {
$(".dialog" + counter).dialog({
autoOpen: false,
show: "blind",
hide: "fade"
});
$(".see-details" + counter).click(function () {
$(".dialog" + counter).dialog("open");
return false;
});
counter++;
});
答案 0 :(得分:1)
问题是在点击链接之前不会评估$(".dialog" + counter).dialog("open");
行。因此,它使用的counter
值是当前的。更好的方法是完全取出计数器,并使用jQuery选择器来选择正确的.dialog。
没有HTML,我不能说它应该是什么样子,但你会希望点击功能看起来像是
$(".see-details").click(function () {
$(this).sibling(".dialog").dialog("open");
return false;
});
当然,假设.dialog元素实际上是.see-details的兄弟。如果不是,你将需要更多地遍历树。
答案 1 :(得分:0)
试试这个(未经测试):
$(function () {
$(".accessoryrow").each(function(index) {
$(".dialog" + (index + 1)).dialog({
autoOpen: false,
show: "blind",
hide: "fade"
});
$(".see-details" + (index + 1)).click(function () {
$(".dialog" + (index + 1)).dialog("open");
return false;
});
});
索引将循环编号传递给函数。它从0开始,我认为你需要它从1开始,所以我在每个使用它的地方加了1。