我目前有一个jQuery函数,onclick打开一个对话框。这允许用户回复问题。
我遇到的问题是,如果有多个问题,该功能仅适用于创建的第一个按钮。
$C = count($array2);
for($i=0; $i < $C; $i++)
{
echo "<button id='reply'>Reply</button";
}
$(function() {
var name = $( "#name" ),
allFields = $( [] ).add( name ),
$( "#form" ).dialog({
autoOpen: false,
height: 200,
width: 700,
modal: true,
buttons: {
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});
$( "#reply" ).click(function() {
$( "#form" ).dialog( "open" );
});
});
我想要的是点击任何这些按钮,对话框将打开,允许用户回复评论。
提前致谢。
戴夫。
答案 0 :(得分:0)
首先,ID应该是唯一的。请考虑使用reply
作为类:
echo "<button class='reply'>Reply</button>";
现在您的代码可以使用:
$(".reply").click(function() {
$( "#form" ).dialog( "open" );
});
其次,您可能需要考虑委托父级以避免添加不必要的事件处理程序。例如,如果所有这些回复按钮都包含在元素#container
中,则可以使用:
$('#container').on("click",".reply",function(){
$( "#form" ).dialog( "open" );
});
答案 1 :(得分:0)
对于“回复”按钮,您应该使用Class而不是Id。请尝试以下代码:
.....
for($i=0; $i < $C; $i++)
{
echo "<button class='reply'>Reply</button";
}
.....
$( ".reply" ).click(function() {
$( "#form" ).dialog( "open" );
});