写在HTML属性里的函数名,要怎么调用呢?

newbirdfindfood 2017-09-27 05:46:06
比如以下代码

<script>
function a1(){
alert(1);
}
</script>
<div id='a' data-func='a1'></div>
<script>
var a2 = $("#a").data('func');
a2();
</script>

然后我获取到了div的data属性,调用的时候缺报错了。应该怎么用呢?
...全文
649 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jio可 2017-09-28
  • 打赏
  • 举报
回复
没看明白你这个是什么需求,函数的调用一般是触发性的。这样写没看出来有什么意义,明知道要调用那个函数为什么不直接写,要这样取值调用? 并且你这个都写错了var a1 = {a3:function(){alert(1)}} 直接调用 al.a3();
newbirdfindfood 2017-09-28
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
window[a2](); 或 eval(a2)();
感谢你的解答 但如果a1是个对象呢?就像下面这样的?

<script>
var a1 = {
function a3(){
alert(1);
}
}
</script>
<div id='a' data-func='a1.a3'></div>
<script>
var a2 = $("#a").data('func');
a2();
</script>
这样a2又该怎么调用呢?
天际的海浪 2017-09-28
  • 打赏
  • 举报
回复
引用 6 楼 newbirdfindfood 的回复:
[quote=引用 2 楼 jslang 的回复:] window[a2](); 或 eval(a2)();
感谢你的解答 但如果a1是个对象呢?就像下面这样的?

<script>
var a1 = {
function a3(){
alert(1);
}
}
</script>
<div id='a' data-func='a1.a3'></div>
<script>
var a2 = $("#a").data('func');
a2();
</script>
这样a2又该怎么调用呢?[/quote]

<script>
var a1 = {
a3:function(){
alert(1);
}
}
</script>
<div id='a' data-func='a1.a3'></div>
<script>
var a2 = $("#a").data('func');
eval(a2)();//还是一样的
jio可 2017-09-28
  • 打赏
  • 举报
回复
那可以做一个条件执行函数 多个div对应标记为f1,f2,f3,f4,f5...... switch(param){ case "f1": //do sth 执行函数 break; case "f2": //...... }
newbirdfindfood 2017-09-28
  • 打赏
  • 举报
回复
引用 7 楼 u012418098 的回复:
没看明白你这个是什么需求,函数的调用一般是触发性的。这样写没看出来有什么意义,明知道要调用那个函数为什么不直接写,要这样取值调用? 并且你这个都写错了var a1 = {a3:function(){alert(1)}} 直接调用 al.a3();
是的 确实写错了 只是单纯复制进去了 太粗心了。。。 需求是 不知道载入哪个div 不同div对应不同事件 所以就把事件名称先写入div里
jio可 2017-09-27
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
window[a2](); 或 eval(a2)();
回复于: 2017-09-27 17:12:34 发表于: 2017-09-27 17:46:06 穿越
jio可 2017-09-27
  • 打赏
  • 举报
回复
window[a2]();
2017-09-27
  • 打赏
  • 举报
回复

eval(a2+"()");
别闹腰不好 2017-09-27
  • 打赏
  • 举报
回复
a2.call()
天际的海浪 2017-09-27
  • 打赏
  • 举报
回复
window[a2](); 或 eval(a2)();

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧