jQuery多次调用asmx web方法

时间:2010-08-29 20:04:24

标签: c# jquery web-services

我有一个调用.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.");
                    }
                }
            });

        });

在做了更多测试之后,我发现帖子实际上是重复了多次。

1 个答案:

答案 0 :(得分:0)

http://api.jquery.com/live/表示

  

要在使用.live()进行绑定后停止执行其他处理程序,处理程序必须返回false。调用.stopPropagation()不会实现此目的。

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

return false; 

在点击处理程序的末尾,看看它是否有效。