如果我有一个字符串中的方法名,在
Ruby中我可以使用send来动态调度方法,例如
method_name = "delete" send method_name
我也可以利用插值:
method_name = "add" send "#{method_name}_task",args
我有两个定义在javascript中的函数,一个要删除,一个更新一些.每个的按钮都是动态添加的,目前只有删除方法通过button.on“点击”绑定.
b.on "click",(event) -> event.preventDefault() # stop submission via postback this_button = $(this) task_id = this_button.data("task-id") delete_task( task_id,this_button ) false
我想要这样做:
method_name = "delete" b.on "click",(event) -> event.preventDefault() # stop submission via postback this_button = $(this) task_id = this_button.data("task-id") send "#{method_name}_task",task_id,this_button false
两个功能的绑定之间的唯一区别是这一行.如果有一个明显的方法,减少重复将是有帮助的.我没有找到任何东西在我的搜索,所以如果有人可以帮助它将不胜感激.
解决方法
你需要使用
bracket notation
b.on("click",window[method_name](event))