在.on()和.off()方法之间切换

use*_*947 3 javascript jquery

我有这个功能:

function toggleExpansion(actions){
   if(actions === 'on') {
    $('.left-column').on('click', expand);
  }
  if(actions === 'off') {
    $('.left-column').off('click', expand);
  }
}
Run Code Online (Sandbox Code Playgroud)

我会打电话toggleExpansion('on')或toggleExpansion('off')多次.

我想重写toggleExpansion,使其行为相同但代码较少:

function toggleExpansion(actions){
    $('.left-column').actions('click', expand);
}
Run Code Online (Sandbox Code Playgroud)

显然jquery不知道我是在引用变量actions还是在寻找一个名为的方法action().如果我使用:

 function toggleExpansion(actions){
        $('.left-column').(actions.valueOf)('click', expand);
    }
Run Code Online (Sandbox Code Playgroud)

它评估$('.left-column').(on)('click', expand)哪种语法错误.

谢谢!

Aln*_*tak 5

您可以使用[]语法通过名称调用作为对象属性的函数:

$('.left-column')[actions]('click', expand);
Run Code Online (Sandbox Code Playgroud)