首页 > 解决方案 > 为什么我无法在这里触发“更改”事件?

问题描述

我正在测试jQuery Knob 插件:

$(function() {
  $(".knob").knob({
    "width": 50,
    "height": 50,
    'change': function (value) {
      $('#display').html("some process: " + value);
    }
  });

  $('#random').click(function() {
    $(".knob").val(Math.random() * 100).trigger('change');
  });
});  

II 手动(用鼠标)拖动旋钮,它正确地“触发”了更改功能,并更改了正确的值。

但是,如果我手动触发它(即.trigger()单击后),它只会更改旋钮的值:它不会触发绑定的“更改”事件。

为什么?我该如何解决?

手动看来我可以做到。

标签: jqueryeventstriggers

解决方案


将“改变”改为“释放”。

$(function() {
  $(".knob").knob({
    "width": 50,
    "height": 50,
    "release": function (value) {
       $('#display').html("some process: " + value);
    }
  });

  $('.knob').trigger(
  'configure',
   {
    "min": 0,
    "max": 100,

  })

  $('#random').click(function() {
    $(".knob").val(Math.random() * 100).change();
  });
});  

https://jsfiddle.net/an3r8fos/


推荐阅读