2013-08-20 119 views
1

我有一個MVC 4應用程序與基本模板。在_layout.cshtml我有這樣的代碼:點擊事件沒有註冊jQuery

<script type="text/javascript"> 
     $(window).load(function() { 
      $("body").on({ 
       // When ajaxStart is fired, add 'loading' to body class 
       ajaxStart: function() { 
        $(this).addClass("loading"); 
       }, 
       // When ajaxStop is fired, remove 'loading' from body class 
       ajaxStop: function() { 
        $(this).removeClass("loading"); 
       } 
      }); 

      $("a").click(function() { 
       $(this).addClass("loading"); 
      }); 
     }); 

    </script> 

和HTML的一樣:

<body> 
    @RenderBody() 

    @Scripts.Render("~/bundles/jquery") 
    @RenderSection("scripts", required: false) 
    <div class="modal"></div> 
</body> 

我創建了剛剛通過MVC給出的代碼HomeController的。 在索引檢視所有我是這樣的:

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 
<a href="#">some <span class="red">text</span></a> 

我想了解關於如何實現,只要一個鏈接或一個Ajax請求,橫跨應用程序做了裝載機。

herehere得到很多幫助。

上面的代碼在鏈接被點擊時沒有顯示加載器,到目前爲止還沒有任何ajax調用。 對於很多jQuery大師來說,這是一件非常簡單的事情,但我很難理解使用jQuery的事件連接,所以我正在嘗試使用小的嬰兒步驟來學習。

有人可以指導我如何顯示加載程序並將其隱藏嗎?

感謝您的幫助。 此致敬禮。

+0

是否那些'a'元素是動態創建的? –

+0

不是動態的。 – Codehelp

+0

那麼你需要把'a'單擊事件從第一個事件中解脫出來。 –

回答

0

試試這個,如果a不是按照創建的方式創建的,如果在運行時創建了a,那麼需要在創建時綁定a。

<script type="text/javascript"> 
    $(function() { 
     $("body").on({ 
      // When ajaxStart is fired, add 'loading' to body class 
      ajaxStart: function() { 
       $(this).addClass("loading"); 
      }, 
      // When ajaxStop is fired, remove 'loading' from body class 
      ajaxStop: function() { 
       $(this).removeClass("loading"); 
      } 
     }); 

     $("a").click(function() { 
      $(this).addClass("loading"); 
     }); 
    }); 

</script> 

Demo

+0

不工作,試圖把警報,而不是僅僅用於檢查,也沒有出現。 – Codehelp

+0

你可以設置提琴 – Amit

+0

它是http://jsfiddle.net/2mHYU/ – Codehelp

0

如果被動態地創建,您不能使用點擊()函數。試試這個

$("a").on('click',function() { 
      $(this).addClass("loading"); 
     }); 
相關問題