2014-06-11 137 views
1

我有一個模式窗口,可在點擊下拉菜單中打開。 我被困在執行單擊按鈕時關閉對話框。關閉按鈕單擊事件上的模式對話框

var $that = this; 
$("#btncart_cancel").on("click", function() { 
     ///// ***********close the dialog *************** 
     /// tried this but not working 
     $that.dialog("close"); 
}); 

我的代碼:

$(".ddlCart li").click(function (e) { 
$('#actionsCart').slideToggle(); 

var ddlselectedVal = $(this).attr('id'); 
var selectedListinsCount = selected_Listings.length; 
var SelectedMlsnums = selected_Listings.join(); 
var agentId = $("#AgentId").val(); 

var EnvironmentURL = $("#EnvironmentURL").val(); 

var autoUrl = "/Stats/SearchContacts"; 
var Action = "PreAddToCart" 

var postData = { 
    AgentId: agentId, 
    Mlsnums: SelectedMlsnums, 
    ActionTypeValue: Action 
}; 
var $that = this; 
var close = function (event, ui) { 
    $(this).dialog("destroy"); 
} 
var open = function (event, ui) { 
    var agentId = $("#AgentId").val(); 
    var url = EnvironmentURL + "/Stats/SearchContacts"; 

    $("#btncart_cancel").on("click", function() { 
     ///// ***********close the dialog *************** 
    }); 

    $("#btncart_submit").on("click", function() { 
     $(".liloading").show(); 

     if (App.ContactInfo.Id != 'undefined') { 
      var contactKey = App.ContactInfo.Id; 
      var cartName = App.ContactInfo.Name; 
     } else { 
      var contactKey = 0; 
      var cartName = 'My Personal Cart'; 
     } 

     var note = $("#txtNotes").val(); 
     var url = EnvironmentURL + "/Stats/Cart"; 

     //Send the data using post and put the results in a div     
     $.post(url, { 
      CartName: cartName, 
      Notes: note, 
      Contactkey: contactKey, 
      ActionTypeValue: "AddToCart" 
     }, 

     function (data) { 
      // Replace current data with data from the ajax call to the div.   
      $("#dvModalDialog").empty().append(data); 

     }); 
    }); 
}; 

var rd = Mod.ReportsDialog({ 
    title: 'Add To Cart', 
    close: close, 
    open: open 
}); 
rd.url = EnvironmentURL + "/Stats/Cart"; 
rd.targetElement = '#dvModalDialog' // '#dvSendEmail' 
rd.formName = '#frmCart' 
rd.postData = postData 
rd.open(); 
var $that = this; 
}); 
+0

您的問題可能是有嵌套'click'事件 –

+0

你能做出的jsfiddle? – j08691

回答

7

,我與你接近的方法看到的是$that不是一個jQuery對象的問題。

你可以用$($that).dialog("close")$(this).dialog("close")$('#dvModalDialog').dialog("close")來解決這個問題。

2
$(document).ready(function() { 
    $('#modalClose').click(function(){ 
       window.setTimeout(function() { 
        $('#contact').modal('hide'); 
       }, 5000); 
       }); 
      }); 

Button使用id = modalClose和模式使用id = contact

相關問題