我有以下javascript test.js文件:
$("#addItem").click(function () {
alert("yup");
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#bandRows").append(html); }
});
return false;
});
我想用它将一些HTML注入到页面上的“bandRows”div中。我在MVC 3应用程序中使用Razor,如下所示:
索引视图,其中包含的链接在点击时会注入部分视图HTML:
@model IEnumerable<TariffBand>
<script type="text/javascript" src="=@Url.Content("~/Scripts/jquery-1.3.2.js")"></script>
<script type="text/javascript" src="=@Url.Content("~/Scripts/MicrosoftAjax.js")"></script>
<script type="text/javascript" src="=@Url.Content("~/Scripts/test.js")"></script>
<h2>Index</h2>
@using (Html.BeginForm())
{
<div id="bandRows">
@foreach (var band in Model)
{
Html.RenderPartial("BandEditorRow", band);
}
</div>
@Html.ActionLink("Add band...", "Add", null, new { id = "addItem" })
<input type="submit" value = "Done" />
目前,当我点击链接时,没有调用javascript - 警报框没有显示 - 链接只是导航到“添加”局部视图而不是将其注入'bandRows'div
谁能告诉我为什么?我之前没有使用过javascript,所以我显然做了一些愚蠢的事情,但是在我的生活中无法解决这个问题。
编辑 - 我修改了.js文件,因此处理程序是单击而不是onclick。我也试过修改html助手:
@Html.ActionLink("add band...", "Add", null, new { onclick = "addItem" }
但仍然没有骰子。
由于 大卫
答案 0 :(得分:2)
你有
$("#addItem").onclick(function ()
没有像$.onclick
那样的内容。
这将是
$("#addItem").click(function ()
$().ajax({
应为$.ajax({
并且整个代码应该在document.ready()
之内
$(document).ready(function(){
$("#addItem").click(function (){
.
.
.
});
正如您已经承认自己是javascript世界的新手,我正在提供详细代码:
<script type="text/javascript" src="=@Url.Content("~/Scripts/MicrosoftAjax.js")"></script>
@* <script type="text/javascript" src="=@Url.Content("~/Scripts/test.js")"></script> *@
<h2>Index</h2>
<script type="text/javascript">
$(document).ready(function(){
$("#addItem").click(function (){
alert("yup");
$.ajax({
url: this.href,
cache: false,
success: function (html) {
$("#bandRows").append(html);
}
});
return false;
};
});
</script>
document ready
是您在启动jQuery
时需要学习的非常初步的事情。 This是ready
事件的API文档。 here是了解document ready
的教程。