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 に答える