首页 > 解决方案 > 第二个弹出窗口不显示在点击

问题描述

我正在尝试使用 jquery mobile 在单击另一个弹出窗口时显示一个弹出窗口。

我的代码如下所示:

htmlpop='<a href="#popup" style="background-color:#11ffeeff; data-rel="back" class="ui-btn ui-corner-all ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-left">Close</a>';
htmlpop=htmlpop +'<p> a question</p>';
htmlpop=htmlpop + '<button id="yes">yes</button>';
$("#popup").html(htmlpop);
$("#popup").trigger('create');
$("#popup").popup('open');

$("#yes").bind( "click", function(event, ui){

    $("#popup").popup('close');
    alert("popup close"); // when the alert showup the popup is still open
    htmlform = 'somehtml';

    $('#popupform').html(htmlform);
    $('#popupform').trigger('create');
    $("#popupform").popup('open');
    alert("popupform open"); //the 1st popup is still open and the 2nd don't
});     

我可能做错了什么,希望你能帮助我^^

编辑:我在我的第二个弹出窗口的 html 中修复了一个错误,所以现在我的第一个弹出窗口正确关闭,第二个出现在我的警报中但立即消失。

EDIT2:这是我的完整代码

crea_dico = false; // on repasse a false pour les prochaines itérations     
var autVar = testdico[j].trim();
//On propose a l'utilisateur de créer le dico et la variable.
                    
buffer='<a href="#popup" style="background-color:#11ffeeff; data-rel="back" class="ui-btn ui-corner-all ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-left">Close</a>';
buffer=buffer + '<p>le dictionnaire '+dicotrim+'n\'existe pas encore voulez-vous créer le dictionnaire et la variable associé dans ce calcul?</p>';
buffer=buffer + '<p><button id="oui">oui</button>';
buffer=buffer + '<button id="non">non</button></p>';
$("#popup").html(buffer);
$("#popup").trigger('create');
$("#popup").popup('open');
alert("popup open");
$(document).on( 'click', '#oui', function(){
                        
    //Si oui on ouvre le formulaire de création de la variable (champ variable et dico pré-rempli)
    $("#popup").popup('close');
    alert("popup close");
                                                
    buffer='<a href="#ajout_var" style="background-color:#11ffeeff;" data-rel="back" class="ui-btn ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-left">Close</a>';
    buffer=buffer + '<form>';
                
    buffer=buffer + '<input type="text" class="form-control" id="calculAut" placeholder="" value="'+autVar+'" ></input>';
    buffer=buffer + '<input id= descriptionAutVar type="text" placeholder="Description variable"></input>';
    buffer=buffer + '<textarea id= calculAutVar placeholder="Formule de calcul"></textarea>';
    buffer=buffer + '<input id= ticketAutVar type="text" placeholder="Ticket (lien ou numéro)" value="'+ticket+'"></input>';
    buffer=buffer + '<input id= RAAutVar type="text" placeholder=" Variable RA "></input>';
    buffer=buffer + '<input id= commentaireAutVar type="text" placeholder=" Commentaire création/ticket "></input>';
    buffer=buffer + '<button id="valider"></button>';
    buffer=buffer + '<button id="annuler"></button>';
    buffer=buffer + '</form>';
                        
                        
    $('#ajout_var').html(buffer);
    $('#ajout_var').trigger('create');
    $("#ajout_var").popup('open');
    alert("ajout_var open");
    //création de du dico et de la variable en base.
    $(document).on( 'click',"#valider", function(){
                            
        //var nameAutVar = document.getElementById("nameAutVar").value;
        var ticketAut = document.getElementById("ticketAutVar").value;
        var calculAut = document.getElementById("calculAutVar").value;
        var commentaireAut = document.getElementById("commentaireAutVar").value;
        var descriptionAut = document.getElementById("descriptionAutVar").value;
        var RAAut = document.getElementById("RAVar").value;         
                            
        ajout_variable(dico,autVar,ticketAut,calculAut,commentaireAut,descriptionAut,RAAut);
                            
        $("#ajout_var").popup('close');

    }); //fin de l'action du bouton "valider" lorsque l'utilisateur a saisie les infos de la variable manquante
                        
    //On annule la création du dico et de sa variable
    $(document).on( "click", "#annuler", function(){
        $("#ajout_var").popup('close');
    });
}); //fin de l'action du bouton "Oui" lorsqu'on demande a l'utilisateur s'il veut renseigner la variable manquante
                    
$(document).on( "click", "#non", function(){
    $("#popup").popup('close');
});

但我认为我不应该那样绑定函数,看起来我每次点击按钮时都会在点击事件中添加函数,因为如果我第二次触发弹出窗口,我的警报会显示两次。

标签: javascriptjquerypopup

解决方案


推荐阅读