【问题标题】:jQuery calls asmx web method multiple timesjQuery多次调用asmx web方法
【发布时间】:2011-04-05 12:18:35
【问题描述】:

我有一个调用 .asmx Web 服务的 jQuery 方法。 jQuery 方法只执行一次,但 web 服务执行多次。

这是调用 Web 服务的 jQuery 代码

// Expand copy to group modal groups
        $(".groupZones .expand").live('click', function() {
            $(this).siblings('.contract').show();
            $(this).css('display', 'none');
            $(this).parent().parent().siblings('.groupDetails').css('display', 'block');
            $(this).parent().parent().siblings('.groupDetails').find('ul.device').find('ul .list').after('');
            var cwpUserId = $('#ctl00_cphBody_hfCwpId').val();
            var groupId = $(this).parent().siblings('.add').find('input').val();
            sortOn = "Location";
            var mode = "dayparts";
            var groupUl = $(this).parent().parent().siblings('.groupDetails').find('ul').find('ul li.head');
            var groupDetails = $(this).parent().parent().siblings('.groupDetails');
            //Get the zone details..
            // Load.

            $.ajax({
                type: "POST",
                url: "ajax/DaypartMessagingGroups.asmx/GetDetailsForCopyToGroup",
                data: "{'groupId':" + groupId + ",'cwpUserId':" + cwpUserId + ",'pageNum':0,'pageSize':5, 'sortOn':'" + sortOn + "','sortDirection':'" + sortDirection + "','mode':'" + mode + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    //$(btn).parents("ul.list-group-zones").children("li:.head").after(msg.d);
                    $(groupUl).after(msg.d);
                    $('.location').find('.contract').hide();

                    var copyZonePerPage = 5;
                    //var copyZoneItemsCount = $(groupUl).siblings('#hfAllGroupZones').val();
                    var copyZoneItemsCount = $('#hfAllGroupZones').val();
                    var copyZonePages = Math.ceil(copyZoneItemsCount / copyZonePerPage);
                    var copyZoneHtml = '';
                    var copyZoneCurLink = 0;
                    var current_copyzone_pagination_set = 1;
                    var num_of_pagination_shown = 0;
                    alert('Line 2113 CBG');

                    if (copyZonePages > 20) {
                        //var pagesAdded = (parseInt(current_copyzone_pagination_set) - 1) * 10;

                        while (num_of_pagination_shown < 20) {
                            copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
                            copyZoneCurLink++;
                            num_of_pagination_shown++;
                        }

                        copyZoneHtml += '<a class="page_link" id="btnNextZoneSet" longdesc="' + copyZoneCurLink + '">...</a>';

                    }
                    else {
                        while (copyZonePages > copyZoneCurLink) {
                            copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
                            copyZoneCurLink++;
                        }
                    }

                    $(groupUl).parent().parent().find('ul li.footer').html(copyZoneHtml);
                    $('.page_link_clicked[longdesc=0]').addClass('current');

                },
                error: function(err) {
                    var err = eval("(" + err.responseText + ")");
                    if (ShowModalLogin(err.ExceptionType)) {
                        alert("An error occurred.");
                    }
                }
            });

        });

在进行更多测试后,我发现该帖子实际上被重复了多次。

【问题讨论】:

  • 发布你的JS代码怎么样
  • 如何调用 asmx 网络服务?如果您发布一些代码会很有帮助。

标签: c# jquery web-services


【解决方案1】:

http://api.jquery.com/live/ 声明

要在使用 .live() 进行一次绑定后阻止进一步的处理程序执行,处理程序必须返回 false。调用 .stopPropagation() 不会完成此操作。

我不确定这是否适用于此,但您可以添加一个

return false; 

在您的点击处理程序结束时查看它是否有效。

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2013-08-24
    • 2013-04-04
    • 1970-01-01
    • 2016-07-01
    相关资源
    最近更新 更多