Jquery对话框只打开一次
我正在尝试使用jquery对话框,但它似乎只对第一项起作用(只有第一项打开) 以下是脚本:Jquery对话框只打开一次,jquery,jsp,jquery-dialog,Jquery,Jsp,Jquery Dialog,我正在尝试使用jquery对话框,但它似乎只对第一项起作用(只有第一项打开) 以下是脚本: $(document).ready(function () { $("#dialog-form").dialog({ autoOpen: false, height: 500, width: 400, modal: true
$(document).ready(function () {
$("#dialog-form").dialog({
autoOpen: false,
height: 500,
width: 400,
modal: true
});
$("#open").click(function(){
$("#dialog-form").dialog("open");
});
});
HTML代码段:
<c:forEach var="item" items="${menuList}">
<tr>
<td width="150px"><a href="#" id="open"><img src="imageGetter?item_id=${item.idItem}" width="100px" height="60px" /></a></td>
<td width="200px">${item.itemName}</td>
<td width=200px">${item.description}</td>
<td width="150px">${item.price}</td>
</tr>
</c:forEach>
<div id="dialog-form" title="title1">
<img src="imageGetter?item_id=${item.idItem}" width="100%" height="50%" />
<h3>Name: ${item.itemName}</h3>
<h3>Description: ${item.description}</h3>
<h3>Price: ${item.price}</h3>
</div>
${item.itemName}
如果“只有第一个打开”是指每次单击时都会显示对话框,但其中始终包含“第一个”信息。。。我想说这是因为您只创建了一个对话框表单,在foreach循环之外。我甚至不确定您的对话框如何显示适当的值,因为您在对话框中填充的值也来自for循环,而您在创建对话框窗体时不在for循环中
我将通过以下方式解决这个问题:
在foreach循环中,创建指向对话框的链接时,请执行以下操作:
<td width="150px"><a href="#" id="open" data-name="${item.itemName}" data-desc="${item.description}" data-price="${item.price}"><img src="imageGetter?item_id=${item.idItem}" width="100px" height="60px" /></a></td>
在创建对话框标记时:
<div id="dialog-form" title="title1">
<img src="imageGetter?item_id=${item.idItem}" width="100%" height="50%" />
<h3>Name: <span id="spanDataName"></span></h3>
<h3>Description: <span id="spanDataDesc"></span></h3>
<h3>Price: <span id="spanDataPrice"></span></h3>
</div>
姓名:
说明:
价格:
似乎有多行表具有相同的id打开
,因此,如果单击id打开
的第一个元素
,对话框将打开。您必须将id更改为类
试着把它改成课堂
<a href="#" class="open">
我想当你点击“打开”时,它应该会打开包含该项目信息的对话框?好吧,@ericrunia的回答与我的想法类似,否则你的逻辑看起来很奇怪:)是的,我放置了一行代码,使@ericrunia误解了这个问题。很抱歉。对于下一个问题如何将数据输入对话框,这将是一个很好的答案。我的问题可能把你弄糊涂了,我做了这一切。但安托·J·苏巴什对这个问题的回答是正确的。你希望这是下一个问题的答案吗?当然,对不起,我误解了。我真的错过了一次又一次使用“开放”id的机会,很好地抓住了anto j!问题到了,你现在可以回答了。
<a href="#" class="open">
$(".open").click(function(){
$("#dialog-form").dialog("open");
});