在javascript函数中单击打开多个窗口

时间:2015-08-10 05:08:48

标签: javascript jquery

我使用toggleDays类来展开和折叠我的请求。每个请求(obj)都有多个Days条目,这些条目是打开新选项卡的链接。例如; Request-1可以第1天,第2天。 Request-2可以第1天,第2天和第3天

我的问题是,如果点击请求-2 第1天,它会为第1天打开一个新标签页 Request-1 以及 Request-2 的正确标签。我怎样才能确保我只是为我点击的特定请求而不是所有请求开启那一天。以下是我的代码。任何帮助将不胜感激!

提前致谢!

    function GetSpecificRequest(requestId, that) {
    var parms = "{'requestId' :'" + requestId + "'}";

    jQuery.ajax({
        type: "POST",
        url: "DisplayRequests.aspx/GetSpecificRequest",
        async: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: parms,
        success: function (response) {

            if (response.d != '') {
                var obj = JSON.parse(response.d);

                $.each(obj, function (index, item) {

                    that.next('.toggleDays')
                        .append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Day:  ' + '<a href="#" class="dayRequest">' + item.RQST_ID_CNTR + '</a></div></div')
                        .append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Print Date:  ' + $.datepicker.formatDate("mm/dd/yy", (new Date(parseInt(item.RQST_CYCL_DT.substr(6))))) + '</div></div')
                        .append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Status:  ' + item.RQST_STAT_CD + '</div></div')
                        .append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Copies Matched:  ' + item.RQST_NBR_MTCH + '</div></div')
                        .append('<div class="rowSeparatorShort"></div');
                });

                $('.dayRequest').bind('click', function () {
                    var day = $(this)[0].innerHTML;
                    window.open("DisplaySearchCriteria.aspx?RequestID=" + requestId + "&RequestCtr=" + day);
                });
            }
            return false;
        },
        error: function (httpRequest, textStatus, errorThrown) {
            LogAjaxErrorToServer(httpRequest, textStatus, errorThrown, parms, "GetSpecificRequest");
        }
    });
}

1 个答案:

答案 0 :(得分:0)

您继续绑定每个.dayRequests的所有obj点击事件。您可以为链接添加ID并绑定到该链接。即。

.append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Day:  ' + '<a href="#" class="dayRequest" id="' + requestId + '">' + item.RQST_ID_CNTR + '</a></div></div')

 $('#' + requestId).bind('click', function () {
     var day = $(this)[0].innerHTML;

或者将requestId作为数据属性添加到您的链接并绑定到您的ajax调用之外点击。

.append('<div class="requestDetailItem columns4"><div class="requestItemLabel label">Day:  ' + '<a href="#" class="dayRequest" data-requestid="' + requestId + '">' + item.RQST_ID_CNTR + '</a></div></div')

在您的document.ready上:

$(document).bind("click", ".dayRequest", function()
{
    //take attributeid here
});