2014-07-25 30 views
0

我正在使用AJAX加載部分視圖(CartHeader),並且Javascript事件不會在部分視圖中觸發。 我試圖註冊post的成功方法內的事件,但他們似乎並沒有工作。JavaScript事件無法在使用AJAX加載的部分視圖上工作

_layout.cshtml:

<nav class="navbar navbar-default navbar-fixed-top"> 

<div id="divCartHeader"> 

</div> 
</nav> 

CartHeader.cstml:

<div class="CartHeader"> 


    <div class="CartButtons"> 
     <button type="button" id="emptyCart">Empty Cart</button>&nbsp;  
    </div> 

</div> 

Cart.js:

var Mod = Mod || {}; 
    Mod.Carts = function (e) { 

    if (ddlselectedVal == "ViewCart") { 

     var frmViewCartValiator = $("#frmViewCart").validate({ 
    var url = EnvironmentURL + "Reports/Stats/GetListingsInCart" ; 

    $.post(url, 
      function (data) { 
       var $emailForm = $("#frmPostToEmailReports"); 
       $emailForm.find("#IsCart").val(true);           

       var url = $("#applicationName").val() + "/Stats/GetCartHeader"; 
       if (IsCart) { 
        // Show the partial view(CartHeader) 
        $.post(url, 
          function (data) { 
          $("#divCartHeader").html(data); 
          $('#emptyCart').on('click', function (e) { 
          alert('You Cart Header events are firing'); 
           }); 
           }); 
          }; 
         }); 
        });  
       } 
      } 
+0

你在控制檯裏有什麼東西嗎? – Jnatalzia

回答

0

柯倫tly,你的代碼依賴於IsCart將你的第二個$ .post返回爲true,並且在你的代碼中沒有定義IsCart。只是爲了測試功能,您可以添加

var url = $("#applicationName").val() + "/Stats/GetCartHeader"; 
var IsCart = true; 
if (IsCart) { 
    .... 
} 

並且這應該能夠讓您測試第二個$ .post。但是,您需要返回並定義您自己的功能和IsCart設置邏輯。

相關問題