ajax - Ajax 请求数量随着实时 jQuery 的增加而增加

标签 ajax jquery-ui-dialog jquery

我有下面的代码,我使用clone()live()。 该代码正在通过链接加载到 jQuery UI 对话框中。 每当我单击该链接时,它都会转到服务器并用下面的代码填充对话框。 第一次加载页面时,它工作正常,但如果我关闭对话框并再次单击链接以获取对话框,则发送的 Ajax 请求数量会增加。

第一次发送触发更改时,我只发送一个请求,我关闭对话框并再次加载它,然后触发更改,它同时发送两个 Ajax 请求,第三次同时发送三个请求,依此类推在。

你认为我的问题出在哪里?

<input id="TaskId" name="TaskId" type="hidden" value="18" />
<div id="MainDiv">
    <div id="toClone">
        <div style="display: inline;">
            <select id="Tasksess">
                <option value="">لطفاً کار را انتخاب کنيد</option>
                <optgroup label="کار های جديد">
                        <option value="16"style="">q3fe</option>
                        <option value="18"style="">fjhv j</option>
                        <option value="19"style="">wref</option>
                        <option value="25"style="">ff</option>
                </optgroup>
                <optgroup label="کار های در دست اقدام">
                        <option value="13"style="">rr</option>
                        <option value="15"style="">yy</option>
                </optgroup>
                <optgroup label="کار های تمام شده">
                        <option value="14"style="">tt</option>
                        <option value="18"style="">fjhv j</option>
                </optgroup>
            </select>
        </div>
        <div style="display: inline;">
            <select id="Statusess" name="Statusess"><option value="">لطفاً وابستگی را انتخاب کنيد</option>
<option value="1">پيشنياز</option>
<option value="2">همنياز</option>
</select>
        </div>
        <div style="display: none;" id="Ok">
            ok
        </div>
        <div style="display: none;" id="noOk">
            تکراری
        </div>
        <div id="loadingGif" style="display: none;">
            <img src="/Content/Images/ajax-loader/253L.gif" alt=""/>
        </div>
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function () {

        var Maindiv = $("#MainDiv");
        var toClone = $("#toClone");

        //$("#Statusess").each(function () {
            $("#Statusess").live('change', function () {
                if ($(this).find(":selected").val() != "") {                    
                    if ($(this).parent().prev().find(":selected").val() != "") {
                        $(this).parent().parent().find("#loadingGif").attr("style", "display: inline;");
                        $.ajax({
                            url: '/ProjectAdmin/Project/AddTaskDependency?MainTaskId=' + $("#TaskId").val() + '&DependentTaskId=' + $(this).parent().prev().find(":selected").val() + '&Status=' + $(this).find(":selected").val(),
                            type: 'GET',
                            success: function (data, status) {
                                if (data != "0") {
                                    $(this).parent().parent().find("#Ok").attr("style", "display: inline;");
                                    $(this).parent().parent().find("#noOk").attr("style", "display: none;");
                                }
                                else if (data == "0") {
                                    $(this).parent().parent().find("#Ok").attr("style", "display: none;");
                                    $(this).parent().parent().find("#noOk").attr("style", "display: inline;");
                                }
                                var div = $('div:eq(0)', Maindiv).clone();
                                Maindiv.append(div);
                            }
                        });
                        $(this).parent().parent().find("#loadingGif").attr("style", "display: none;");

                    }
                }
            });
        //});

    });
</script>

最佳答案

你应该尝试:

$("#Statusess").off('change').on('change', function() {

});

PS:仅适用于 jQuery 1.7+。如果您无法升级:

$("#Statusess").die('change').live('change', function() {

});

关于ajax - Ajax 请求数量随着实时 jQuery 的增加而增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014963/

相关文章:

javascript - 无法让我的 post() 使用 jQuery Ajax 工作

javascript - 当我尝试使用 ajax post 将值从 JavaScript 发送到 PHP 时,URL 未加载

jquery - 如何附加到所有 Jquery.UI.dialog 打开事件以在打开时动态调整对话框大小?

javascript - 如何创建即使缩放也能正确调整大小的 1px 边框折叠表格网格

javascript - AJAX 请求中的 PHP session 变量

jquery - 如何处理表中动态创建的tr

javascript - JQuery UI 对话框重新加载原始内容

javascript - 从 JQuery 对话框打开 JQuery 对话框

javascript - 一页上的多个表单通过ajax发布数据

jQuery移动横向和纵向类