如何使用$(document).on(“点击..在<标签上?

我是jQuery的新手,我正在使用jQuery 1.7.1来学习Knockout JS,我正在关注作者的video演示。 在他的例子中,他有一个类似的标签

Delete 

在视图模型中他有类似的东西

 $(document).on("click", ".button-delete", function() { console.log("inside"); }); 

当我点击删除按钮时,当我尝试在我身边时,我从未看到console.log出现在Chrome F12屏幕的控制台窗口上。 我在这里有两个问题

  1. 有什么我做错了,这会阻止控制台消息显示出来吗?
  2. 如果我没有要做css的类,还有其他方法可以在viewmodel中执行相同的任务吗?

编辑:我纠正了我的错字,代码有正确的括号(我使用web矩阵,因此它处理这些问题)。 这是我的HTML

                 

这是我的淘汰视图模型

 ///  ///  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); } 

看起来你已经得到了第一个答案。 如果你没有“绑定点击事件的”其他方式“;有一个类名,有几个选项。 您可以为标记添加ID,并以此方式调用它。 或者,如果您不想添加类或id,可以使用data-bind语法和“click”内置绑定来调用视图模型上的方法(显然这不是jquery evnet样式,所以由您决定如何连接您的活动)。 像这样:

  

你有任何错误吗?

你加载了jQuery.jsknockout.js

请发布视图模型代码。


啊! 得到它你有一个错字

 $(document).on("click", ".button-delete", function() { // console.log("inside"; <-- here it is console.log("inside"); }); 

DEMO

Nair首先让我知道,如果你想删除按钮,你想在这里做什么。 然后使用jquery Ui的remove函数,如果你想控制一些东西,那么只需编写console.log(“你想要控制台”);

我认为你的行function() { console.log("inside"; }); is wrong function() { console.log("inside"; }); is wrong

我建议您查看敲除的click绑定,而不是将knockout与随机查询混合。 单击绑定将允许您将click事件绑定到视图模型中的函数。