Я новичок в jQuery, и я использую jQuery 1.7.1 для изучения Knockout JS, я следил за видео-демонстрацией автора. I am new to jQuery and I am using jQuery 1.7.1 to learn Knockout JS, I watched the author's video demonstration. В его примере у него есть тег что-то вроде In his example, he has a tag something like
Delete
и в viewmodel у него есть что-то вроде and in viewmodel it has something like
$(document).on("click", ".button-delete", function() { console.log("inside"); });
Когда я попытался встать на бок, когда я нажимаю кнопку "Удалить", я никогда не вижу, как console.log появляется в окне консоли на экране Chrome F12. When I tried to stand on my side, when I click the Delete button, I never see console.log appear in the console window on the Chrome F12 screen. Здесь у меня есть два вопроса: Here I have two questions:
- Есть ли что-то, что я делаю неправильно, что препятствует появлению сообщения консоли? Is there something I'm doing wrong that is preventing the console message from appearing?
- Если у меня нет класса для создания css, есть ли другой способ выполнить ту же задачу в viewmodel? If I don't have a class for creating css, is there any other way to accomplish the same task in the viewmodel?
изменить: Я исправил свою опечатку, код имеет правильную скобку (я использую веб-матрицу, чтобы позаботиться об этих проблемах). edit: I fixed my typo, the code has the correct bracket (I use the web matrix to take care of these problems). Вот мой html Here is my html
Вот моя модель нокаута Here is my knockout model
/// /// 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); }
Nair Nair источник поделиться source shareПохоже, вы уже получили свой первый ответ. Looks like you already got your first answer. На "других способах" привязать событие click, если вы не указали имя класса, существует несколько вариантов. On "other methods", to bind the click event, if you did not specify the class name, there are several options. Вы можете добавить id к тегу и называть его таким образом. You can add id to the tag and call it that way. Или, если вы не хотите добавлять класс или идентификатор, вы можете использовать синтаксис привязки данных со встроенной привязкой "click" для вызова метода на вашей модели представления (очевидно, это не стиль jquery evnet, так что до вас, как вы хотите подключить свои мероприятия). Or, if you do not want to add a class or identifier, you can use the data binding syntax with the built-in "click" binding to call the method on your view model (obviously, this is not the jquery evnet style, so it's up to you how you want to connect your events ) Вот так: Like this:
источник поделиться source shareВы получаете какие-либо ошибки? Are you getting any errors?
Загрузили ли вы jQuery.js
и knockout.js
Have you jQuery.js
and knockout.js
отправьте код модели просмотра. send view model code.
ах! Oh! у вас есть опечатка you have a typo
$(document).on("click", ".button-delete", function() { // console.log("inside"; <-- here it is console.log("inside"); });
DEMO Demo
JIA Jia источник поделиться source shareНаир сначала сообщит мне, что вы хотите сделать здесь если вы хотите удалить кнопку, работает. Nair first tells me what you want to do here if you want to remove the button, it works. затем используйте функцию удаления jquery Ui, и если вы хотите что-то консоль, то просто напишите console.log( "вы хотите консоль" ); then use the jquery Ui delete function, and if you want something console, then just write console.log ("you want a console");
Я думаю, что ваша строка function() { console.log("inside"; }); is wrong
I think your line is function() { console.log("inside"; }); is wrong
function() { console.log("inside"; }); is wrong
. function() { console.log("inside"; }); is wrong
.
Rain Rain источник поделиться source shareЯ бы рекомендовал вам взглянуть на привязку клика для нокаута, а не на смешивание нокаута со случайным запросом. I would recommend that you take a look at the click binding for a knockout, rather than mixing a knockout with a random request. Связывание кликов позволит вам привязать событие click к функции в модели представления. Linking clicks allows you to bind the click event to a function in the view model.
источник поделиться source share How to hide scrollbars until they are needed, then delete if not needed - javascriptXcode 4.3 - preprocess plist no longer works for #define with "http: //"? - objective-cFailed to build war in maven project - maven
All Articles