2013-03-03 53 views
1

爲什麼超級鏈接上的點擊事件未被觸發?爲什麼超鏈接上的點擊事件沒有被觸發?

@Html.ActionLink(
    "Show the privacy policy", 
    "PrivacyPolicy", 
    null, 
    new { id = "privacyLink" }) 

<div id="privacy"></div> 

<script> 
    $(document).ready(function() { 

     // $('div').addClass('fooh'); 
     $('div#myDiv').click(function() { 
      alert('div was clicked'); 
     }); 
     $('a#privacyLink').click(function() { 
      alert('a'); 
     }); 
    }); 
</script> 

myDiv click事件如預期被激發,但沒有打響privacyLink的事件,這是不顯示的警告。

生成的HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>Home Page</title> 
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
    <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script> 
    <script src="/Scripts/AjaxDemo.js" type="text/javascript"></script> 
</head> 
<body> 
    <div class="page"> 
     <header> 
      <div id="title"> 
       <h1>My MVC Application</h1> 
      </div> 
      <div id="logindisplay"> 
        [ <a href="/Account/LogOn">Log On</a> ] 

      </div> 
      <nav> 
       <ul id="menu"> 
        <li><a href="/">Home</a></li> 
        <li><a href="/Home/About">About</a></li> 
       </ul> 
      </nav> 
     </header> 
     <section id="main"> 
      <h2>Welcome to ASP.NET MVC!</h2> 
<p> 
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>. 
</p> 
<div id="myDiv"> 
<p> 
Me Gusta 
</p> 
</div> 




<a href="/Home/PrivacyPolicy" id="privacyLink">Show the privacy policy</a> 


<div id="privacy"></div> 



<script> 

    $(document).ready(function() { 

     // $('div').addClass('fooh'); 
     $('div#myDiv').click(function() { 

      alert('div was clicked'); 
     }); 

     $('a#privacyLink').click(function (e) { 
      e.preventDefault(); 
      alert('a'); 
      $(location).src = $(this).attr('href'); 
     }); 

    }); 



</script> 
     </section> 
     <footer> 
     </footer> 
    </div> 
</body> 
</html> 
+1

當您點擊鏈接時會發生什麼? – 2013-03-03 17:38:02

+0

只是重定向到指定的動作 – 2013-03-03 17:41:23

+1

有幾種可能性浮現在腦海中:DOM中有多個元素與id =「privacyLink」',或者您有一些JavaScript錯誤,無法連接點擊處理程序(看看你的js控制檯)。 – 2013-03-03 17:42:47

回答

3

除了事實,你應該從你的錨的點擊回調返回false,以防止瀏覽器重定向離開我看不出什麼錯:

$('a#privacyLink').click(function() { 
    alert('a'); 
    return false; 
}); 

此外,請確保您的DOM中沒有其他任何位置的元素,因爲ID必須是唯一的。

同時檢查您的JS控制檯在瀏覽器中,以確保你沒有一些JavaScript錯誤,防止被正確安裝的。點擊處理程序。

0

使用此: 由於沒有形成你的錨,你的綁定是行不通的。使用http://api.jquery.com/on/

$("a#privacyLink").on("click", function(event){ 
    alert('a'); 
    }); 

這是模擬的條件(動態生成HTML元素)

http://jsfiddle.net/nhNpw/6/ 
+0

你所說的'因爲你的錨不formed'意思?主播就在他的標記中。 – 2013-03-03 17:46:15

+0

我不知道ASP。但似乎他正在客戶端動態創建它 – user1428716 2013-03-03 17:47:17

+1

這與他目前的產品沒有什麼不同。 – 2013-03-03 17:47:59

0

與事件preventDefault()方法嘗試的jsfiddle。

$('a#privacyLink').click(function (e) { 
    e.preventDefault(); 
    alert('a'); 
    $(location).attr('href', $(this).attr('href')); 
}); 
+0

仍然無法正常工作 – 2013-03-03 17:46:45

+0

@ Md.ArafatAlMahmud您是否有'$('a')的提醒。click(...'? – 2013-03-03 18:05:20