【发布时间】:2014-09-12 23:26:12
【问题描述】:
我正在创建一个可点击的 div 列表,以显示一个弹出窗口,其中包含与点击项目相关的信息。
每个列表项都假定列表最后一项的“点击”功能。当我删除最后一项时,它们都假定新的最后一项的“点击”功能。
(例如:我单击列表中的任何项目,然后会出现一个弹出窗口,其中包含有关最后一个项目的信息。我通过单击“批准”按钮将其删除。当我单击任何项目时,将出现一个弹出窗口带有新的最后一项的信息)
我想要的是它显示点击项目的信息。
HTML
<ul id='absencesToApproveList'></ul>
<div class="popupBox approveAbsenceBox">
<h3>Absence to Approve</h3>
<div class="absencePhoto"></div>
<p class="noteAbsence" ></p>
<button id="rejectAbsence" style="width:40%; display:block-inline; float:left;">Reject</button>
<button id="approveAbsence" style="width:40%; display:block-inline; float:right;">Approve</button>
</div>
JS
function getAbsencesToApprove_success(tx, results) {
var len = results.rows.length;
if(internetStatus != 'none')
$('#absencesToApproveList').empty()
for (var i=0; i<len; i++) {
var absence = results.rows.item(i);
var absenceType = absence.type;
var absenceText = absence.note;
var absenceDateFrom = absence.absenceFrom;
var absenceDateTo = absence.absenceTo;
var yyyy = absenceDateFrom.split("-")[0];
var mm = absenceDateFrom.split("-")[1];
var dd = absenceDateFrom.split("-")[2];
var newAbsenceBox = $('<div class="absenceBox" style="border: 2px solid black; position:relative;" ')
.append($('<div class="absenceDateBox" style="border: 2px solid black;" ')
.append('<span style="display: inline-block;vertical-align: middle; line-height: normal;" </span ').text(dd + "/" + mm))
.append($('<p class="absenceText" ').text(absenceText));
var newAbsenceBoxItem = $('<li id="absence' + absence.id + 'Item" style="margin-left:-35px;" ').append(newAbsenceBox)
$('#absencesToApproveList').append(newAbsenceBoxItem)
$('#absence' + absence.id + 'Item').click(function(){
$('.absencePhoto').text('photo' + absence.id)
$('.noteAbsence').text(absenceText)
$('#addAbsenceBoxOuter2').show()
$('.approveAbsenceBox').show()
$('#rejectAbsence').click(function () {
$('#addAbsenceBoxOuter2').hide()
$('.approveAbsenceBox').hide()
$('.absencePhoto').empty()
$('.noteAbsence').empty()
})
$('#approveAbsence').click(function () {
$('#addAbsenceBoxOuter2').hide()
$('.approveAbsenceBox').hide()
$('.absencePhoto').empty()
$('.noteAbsence').empty()
db.transaction(
function(tx){
tx.executeSql("DELETE FROM absences WHERE id=" + absence.id +";");
});
db.transaction(
function(tx) {
tx.executeSql("INSERT INTO absences (id,type,absenceFrom,absenceTo,note,aproved,picture) VALUES ("
+ id++
+ ",'"
+ String(absenceType)
+ "','"
+ String(absenceDateFrom)
+ "','"
+ String(absenceDateTo)
+ "','"
+ absenceText
+ "',"
+ "'true'"
+ ","
+ "'image.jpg'"
+ ")");
}, transaction_error);
db.transaction(getAbsences, transaction_error);
})
})
}
$('#absencesToApproveList').show()
}
演示: http://jsfiddle.net/8LdKh/3/ 提前致谢
【问题讨论】:
-
为什么用户不明白
blockquote高亮和code高亮之间的区别 -
如果可能,请创建上述代码的 jsfiddle
-
是的,请制作一个 jfiddle 并去掉 JS 代码开头的所有括号
> -
用小提琴更新了:)
-
This: $('.noteAbsence').text(absenceText) 将文本从缺席文本设置为匹配选择器的所有元素。所以我认为它没有显示最后一个 LI 叠加层,但所有 li 叠加层都是相同的 :)
标签: javascript jquery html