我是jQuery的新手,我正在使用jQuery 1.7.1来学习Knockout JS,我正在关注作者的视频演示.在他的例子中,他有一个类似的标签
<a href="#" class="button-delete">Delete</a>
在视图模型中他有类似的东西
$(document).on("click",".button-delete",function() { console.log("inside"); });
当我点击删除按钮时,当我尝试在我身边时,我从未看到console.log出现在Chrome F12屏幕的控制台窗口上.我这里有两个问题
>我做错了什么阻止控制台消息出现?
>如果我没有要做css的类,还有其他方法可以在viewmodel中执行相同的任务吗?
编辑:
我纠正了我的错字,代码有正确的括号(我使用web矩阵,所以它处理这些问题).这是我的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); }