【发布时间】:2012-02-20 08:38:10
【问题描述】:
我是 jQuery 新手,我正在使用 jQuery 1.7.1 来学习 Knockout JS,我正在关注作者的视频演示。在他的例子中,他有一个类似
的标签<a href="#" class="button-delete">Delete</a>
在视图模型中他有类似的东西
$(document).on("click", ".button-delete", function() { console.log("inside"); });
当我尝试点击删除按钮时,我从未在 Chrome F12 屏幕的控制台窗口上看到 console.log。我这里有两部分问题
- 我做错了什么导致控制台消息无法显示?
- 如果我没有课做 css,有没有其他方法可以在 viewmodel 中执行相同的任务?
编辑: 我纠正了我的错字,代码有适当的括号(我使用网络矩阵,所以它会处理这些问题)。这是我的html
<!DOCTYPE html>
<script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script src="Scripts/knockout-2.0.0.js" type="text/javascript"></script>
<script src="Scripts/ViewModel.js" type="text/javascript"></script>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link href="assets/css/bootstrap.min.css" rel="stylesheet">
</head>
<body onload="init()">
<input data-bind="value: tagsToAdd"/>
<button data-bind="click: addTag">Add</button>
<ul data-bind="foreach: tags">
<li>
<span data-bind="text: Name"></span>
<div>
<a href="#" class="btn btn-danger" >Delete</a>
</div>
</li>
</ul>
</body>
</html>
这是我的淘汰视图模型
/// <reference file="jquery-1.7.1.js" />
/// <reference file="knockout-2.0.0.js" />
var data = [
{Id: 1, Name: "Ball Handling" },
{Id: 2, Name: "Shooting" },
{Id: 3, Name: "Rebounding" }
];
function viewModel()
{
var self = this;
self.tags = ko.observableArray(data);
self.tagsToAdd = ko.observable("");
self.addTag = function() {
self.tags.push({ Name: this.tagsToAdd() });
self.tagsToAdd("");
}
}
$(document).on("click", ".btn-danger", function () {
console.log("inside");
});
var viewModelInstance;
function init(){
this.viewModelInstance = new viewModel();
ko.applyBindings(viewModelInstance);
}
【问题讨论】:
标签: jquery knockout.js