我正在创建一个表并为on tap属性
指定一个函数我遇到的问题是,如果有3个表行,则提示符将打开3次
任何人都可以告诉我如何解决这个问题吗?
if(window.localStorage['role'] == 'fitter') {
//alert(window.localStorage['role']);
$('#workList tbody').append('<tr class="' + cssClass + '">'+
'<td>' + project.room_ref + '</td>'+
'<td>' + project.description + '</td>'+
'<td>' + project.total_qty + '</td>'+
'<td id="inst-qty" + i >' + '<a href="#" max="' + project.total_qty + '" id="proj-' + project.id + '" data-role="button" data-inline="true" class="ui-btn-right">' + instQty + '</a>' + '</td>'+
'<td>' + project.fitter_name + '</td>'+
'</tr>');
//$('#workList a').on('tap', editInstallQtyPrompt);
thisid = "proj-" + project.id ;
document.getElementById(thisid).onclick = editInstallQtyPrompt;
}
function onEditInstallQtyPrompt(results, projId, value, max) {
//alert('call onedit function');
if(results.buttonIndex == 1) { // OK
// validate input
//
var input = parseInt(results.input1);
if(isNaN(input)) {
navigator.notification.alert(
'Invalid input, number only',
function() {},
'Error'
);
} else {
if(input > max || input < value) {
navigator.notification.alert(
'Number must >= install qty, and < total qty',
function() {},
'Error'
);
} else {
if(isInt(input)) {
//console.log('new input: '+input);
updateProjectHistory(projId, input);
} else {
navigator.notification.alert(
'Integer only',
function() {},
'Error'
);
}
}
}
}
}
答案 0 :(得分:0)
您需要执行此代码$('#workList a').on('tap', editInstallQtyPrompt);
在您添加行的部分之外,导致它不止一次发生。因为你为你添加的每个丝束注册了活动,所以你有3个订阅者。