Javascript和JQuery UI的while循环失败
While-loop with Javascript and JQuery UI failes
我使用JQuery UI库和Dialog
函数。
我想在我的javascript中创建多个触发器。
这是我原来的JS:
$j(function() {
$j( "#dialog1" ).dialog({
autoOpen: false,
show: "slide",
hide: "explode"
});
$j( "#dialog2" ).dialog({
autoOpen: false,
show: "slide",
hide: "explode"
});
...
$j( ".opener1" ).click(function() {
$j( "#dialog1" ).dialog( "open" );
return false;
})
$j( ".opener2" ).click(function() {
$j( "#dialog2" ).dialog( "open" );
return false;
})
...
});
我至少需要一打这样的触发器。那么,我们来创建一个php While
循环。
像这样:
<?php
$i = 1;
while ($i <= 10) {
echo '$j( "#dialog'.$i.'" ).dialog({
autoOpen: false,
show: "slide",
hide: "explode"
});';
$i++;
}
$q = 1;
while ($q <= 10) {
echo '$j( ".opener'.$q.'" ).click(function() {
$j( "#dialog1" ).dialog( "open" );
return false;
})';
$q++;
}?>
对于第一个while
,它都工作得很好。它确实奏效了。但是对于第二个while
,页面只是忽略了整个JS/PHP块…
我做错了什么?
第二个while循环中的这一行:
$j( "#dialog1" ).dialog( "open" );
应该是:
$j( "#dialog' . $q . '" ).dialog( "open" );
现在你所有的点击处理程序都会打开#dialog1我猜这不是你想要做的
你可以像上面建议的那样在js中做所有的事情:
for (var i=1;i<=10;i++) {
$j('#dialog' + i).dialog({
autoOpen: false,
show: "slide",
hide: "explode"
});
$j('.opener' + i).click(function() {
$j( "#dialog" + i).dialog( "open" );
return false;
}
}
您可以仅使用jQuery通过使用一个类(它将成为它们的选择器)链接所有对话框来生成上述所有内容,并将打开器与它们各自的对话框链接起来,如下面的示例所示:
http://jsfiddle.net/Awh7D/至少在第一种情况下,你应该能够使用"多个选择器",就像在
$j( "#dialog1, #dialog2, #dialog3" ).dialog({
autoOpen: false,
show: "slide",
hide: "explode"
});
编辑(在"working break"之后)
第二部分,即在函数内部引用对象的地方,应该像这样工作:
$j( ".opener1, .opener2, .opener3" ).click(function() {
$j(this).dialog( "open" );
return false;
});
对不起,我现在不能模拟,所以有点如履薄冰,你会原谅我的。
我同意Clive的看法:
$q = 1;
while ($q <= 10) {
echo '$j( ".opener'.$q.'" ).click(function() {
$j( "#dialog1" ).dialog( "open" );
return false;
})';
$q++;
}?>
应该是:
$q = 1;
while ($q <= 10) {
echo '$j( ".opener'.$q.'" ).click(function() {
$j( "#dialog'.$q.'" ).dialog( "open" );
return false;
})';
$q++;
}?>
您还可以在对话框/打开器之间共享一个类。下面是一个简单的例子
http://jsfiddle.net/ZbMcA/相关文章:
- 基于两个条件退出While循环
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 为什么我的While循环不起作用
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- jquery,while循环在后台运行,同时while循环
- jquery悬停和while循环
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何修复 while 循环
- Jquery扩展点的宽度,同时通过while循环递增
- 斐波那契序列Javascript做while循环
- 为什么这个while循环不能使用AND逻辑运算符
- JavaScript while循环没有'不能在有条件的情况下工作
- While循环在JavaScript中永远运行
- 逻辑(JSint友好)等效于while循环中的此赋值
- Javascript:用if语句运行while循环,用子句随机生成内容
- 如何使javascript在SQL while循环中回显所有数据
- Javascript 'while' 循环,如果条件为 false,如何停止迭代
- 在 while 循环中选择与整数值对应的数组
- 我怎样才能让 while 循环等到用户在图片上向右滑动