Popup在平板电脑应用中多次打开

时间:2014-01-05 12:46:11

标签: javascript android cordova

我正在创建一个表并为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'
                    );
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您需要执行此代码$('#workList a').on('tap', editInstallQtyPrompt); 在您添加行的部分之外,导致它不止一次发生。因为你为你添加的每个丝束注册了活动,所以你有3个订阅者。