在调用所需函数时,它执行先前调用的函数,然后执行相关函数

时间:2015-03-02 10:18:58

标签: jquery html

function upgradeconfirmbox(msg, mode, sender) {
    $(".blackout").css("display", "block");
    $(".container_cluster").addClass("blurcss");

    $(".pop-up-header-close").click(endBlackoutconfirmbox);
    $('.confirmlabel').text(msg);

    $(".confirmboxpopup").css("display", "block");
    $(".pop-up-footer-create-icon").click(
        { param1: mode, param2: sender }, 
        upgradeprocess
    );
    $(".pop-up-footer-create-icon").click(endBlackoutconfirmbox);
    $(".cancelprocess").click(endBlackoutconfirmbox);
}

当我在第一个功能之后调用第二个功能时,再次调用第一个功能,然后只执行第二个功能!我也尝试过使用不同的功能。

function confirmbox(msg, mode, sender) {
    $(".blackout").css("display", "block");
    $(".container_cluster").addClass("blurcss");
    $(".pop-up-header-close").click(endBlackoutconfirmbox);
    $('.confirmlabel').text(msg);
    $(".confirmboxpopup").css("display", "block");
    $(".pop-up-footer-create-icon").click(
        { command:mode, cluster: sender},
        CallPopuCommands
    );
    $(".pop-up-footer-create-icon").click(endBlackoutconfirmbox);
    $(".cancelprocess").click(endBlackoutconfirmbox);
}

我使用这些函数来调用这两个函数,根据点击的按钮确认框中的msg值将被更改,并且将调用特定的函数。  function grid_dropdown(sender){

    value = sender.childNodes[0].innerHTML;

    parentvalue = sender.parentElement.id;

    if (sender.childNodes[0].innerHTML == "Upgrade") {

        msg = "Are you sure you want to Upgrade?";

        upgradeflag = true;

        upgradeconfirmbox(msg, value, parentvalue, upgradeflag);
    }

    else if (sender.childNodes[0].innerHTML == "Finalize") {

            msg = "Are you sure you want to Finalize?";

       confirmbox(msg,value,parentvalue);

        }

        else if (sender.childNodes[0].innerHTML == "RollBack") {

            msg = "Are you sure you want to Rollback?";

          confirmbox(msg,value,parentvalue);
        }


        else
           {
            msg = "Are you sure you want to Continue?";

        confirmbox(msg, value, parentvalue);

          }

} 

用于升级的Html

    <div class="pop-up-header">

        <div class="pop-up-header-label">UPGRADE</div>

        <div class="pop-up-header-close">X</div>

    </div>

    <div class="pop-up-form">

        <div>

            <div class="pop-up-row">
@ Html.EJ()Uploadbox(&#34; UploadDefault&#34)。SaveUrl(&#34; SaveDefault&#34)。 RemoveUrl(&#34; RemoveDefault&#34;)。ClientSideEvents(e =&gt; e.FileSelect(&#34; fileselect&#34)。完成(&#34; completeupload&#34)。开始(&#34; Beginupload&#34))

从计算机中选择文件

            </div>
        </div>

    </div>

1 个答案:

答案 0 :(得分:0)

问题在于您使用以下行添加事件:

//In upgradeConfirmBox
$(".pop-up-footer-create-icon").click(
    { param1: mode, param2: sender }, 
    upgradeprocess
);
//In confirmbox
$(".pop-up-footer-create-icon").click(
    { command:mode, cluster: sender},
    CallPopuCommands
);

这两行至少执行了一次,他们指定的两个处理程序都将被调用。您应该删除任何点击事件,然后再添加其他内容:

//In upgradeConfirmBox
$(".pop-up-footer-create-icon").off("click").click(
    { param1: mode, param2: sender }, 
    upgradeprocess
);
//In confirmbox
$(".pop-up-footer-create-icon").off("click").click(
    { command:mode, cluster: sender},
    CallPopuCommands
); 

请参阅http://api.jquery.com/off/

上关于关闭的手册