2013-10-30 68 views
2

應該是一個匆匆......註冊在擊事件與jQuery - 不費一槍

1)我使用MVC創建了一個新的項目在VS2013。
2)我將以下代碼添加到使用項目模板創建的默認Home \ Index.cshtml的底部。

<button class="myalertclass">Alert me</button> 

<script src="@Url.Content("~/Scripts/jquery-1.10.2.js")"> 
    $(document).on('click', '.myalertclass', function (e) { 
     alert('Hello you'); 
    }) 
</script> 

我現在期待的是,當我點擊「提醒我」按鈕,我會用「你好,你」,但沒有這樣的喜悅的消息框。

問題是,當我點擊按鈕時,事件未被觸發。我想我在某處丟失了一些線路,但是很難過。

+2

你不能爲你的腳本元素指定'src' _and_ body,所以,使用兩個。 – canon

+0

可能重複[如果script標記同時具有「src」和內聯腳本?](http://stackoverflow.com/questions/3540581/what-if-script-tag-has-both-src-and-inline-腳本) – zzzzBov

回答

3

根據w3.org(重點煤礦):

腳本可以在SCRIPT元素的內容內,或者在外部文件中定義。如果未設置src屬性,則用戶代理必須將元素的內容解釋爲腳本。 如果src具有URI值,則用戶代理必須忽略元素的內容並通過URI檢索腳本。

這就是說,你不能同時指定一個src身體爲您script元素,並希望雙方的工作......所以,使用兩個單獨的script元素。

<script src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script> 
<script> 
    $(document).on('click', '.myalertclass', function (e) { 
     alert('Hello you'); 
    }) 
</script> 
0

您不能在引用的腳本標記中包含內聯腳本。試試這個:

<script src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script> 

<script> 
    $(document).on('click', '.myalertclass', function (e) { 
     alert('Hello you'); 
    }) 
</script> 
+1

@ canon的答案的副本 –