0

这是我的 JavaScript 代码:

$(".filter").on('click', function (e) {
     var filterFunction = $(this).data('strength');
     console.log(filterFunction); // Outputs brightness(10)
     Caman('#canvas', function () {  
           this.filterFunction.render();
     });
});

这是我得到的确切错误:Uncaught TypeError: Cannot read property 'render' of undefined

我想用一段代码来处理所有的过滤器。在尝试上述代码之前,实际代码是:

$brightness.on('click', function (e) {
     Caman('#canvas', function () {
         this.brightness(10).render();
     });
});

但是这样,我将不得不为每个过滤器创建一个不同的处理程序。我想避免这种情况。谁能帮我解决这个错误?

4

1 回答 1

0

当绑定到不同的处理程序时,这是上下文相关的,因此无需再次运行事件代码,只需在需要执行该代码时手动触发该事件

$(".filter").on('click', function (e) {
     $brightness.trigger('click'); //trigger manually click event of $brightness also keep the $brightness handler as it is written
});
于 2016-12-05T12:29:07.670 回答