Javascript 击倒点击事件

Javascript 击倒点击事件,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有以下代码: <div class="icon-upload" data-bind="click: button('upload') "> Upload </div> ko.bindingHandlers.button = { init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { //alert('works');

我有以下代码:

<div class="icon-upload" data-bind="click: button('upload') "> Upload </div>

ko.bindingHandlers.button = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
    {
        //alert('works');
        console.log(element);
    }
};
  • 我必须将单击代码包装在
    ViewModel=function(){
    中吗
    • ?
  • 我不能用我想做的方式来做吗

    • 您做错了。您应该创建自定义绑定
      按钮
      ,该按钮将在
      单击事件时触发

      ko.bindingHandlers.button = {
         init: function (element) {
            $(element).click(function() {
                // Your logic
            });
         }
      
         update: function(element, valueAccessor, allBindingsAccessor) {
            switch(ko.utils.unwrapObservable(valueAccessor())) {
                case 'upload': ...
            }
         }
      }
      
      鉴于

      <div class="icon-upload" data-bind="button: 'upload'"> Upload </div>
      
      上传
      
      您做错了。您应该创建自定义绑定
      按钮
      ,该按钮将在
      单击事件时触发

      ko.bindingHandlers.button = {
         init: function (element) {
            $(element).click(function() {
                // Your logic
            });
         }
      
         update: function(element, valueAccessor, allBindingsAccessor) {
            switch(ko.utils.unwrapObservable(valueAccessor())) {
                case 'upload': ...
            }
         }
      }
      
      鉴于

      <div class="icon-upload" data-bind="button: 'upload'"> Upload </div>
      
      上传
      
      好的,我会用这种方式尝试,而不是用另一种方式…但我会接受你的答案Ok,我会用这种方式尝试,而不是用另一种方式…但我会接受你的答案