微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Javascript / Coffeescript / jQuery中有没有相当于Ruby的发送?

如果我有一个字符串中的方法名,在 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))

原文地址:https://www.jb51.cc/jquery/151916.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐