a标签不能调用js方法的问题
程序员文章站
2022-03-28 23:08:05
...
在我们做后台删除的时候,当点击删除标签时,你希望弹出一个友好的提示框!比如这样:
那代码应该怎样写呢?向下面这样?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script> window.onload=function () { function confirmdelete(id) { return window.confirm("你确定要删除吗?"); } } </script> </head> <body> </body> <?php echo "<a onclick='confirmdelete(2)'>删除</a>";?>
你会发现会发生这样一个错误:
该函数没有被使用?不应该啊,我在php里面不是已经调用了么?
注意:
想必写过前端的人都知道这个方法是在页面全部加载完成之后执行,那么问题就来了,php的执行顺序是先于js的,所以当执行php的时候,发现a标签里面的方法并不存在,因为此刻js还没有被执行,所以就导致了php a标签调用js的时候没有反应这种情况了。
那么代码变成这样呢?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script> function confirmdelete(id) { return window.confirm("你确定要删除吗?"); } </script> </head> <body> </body> <?php echo "<a onclick='return confirmdelete(2)'>删除</a>";?>
结果是成功执行!有人说不对啊,你不是说php的执行顺序要先于js么,这个和上面没什么区别啊。
那么此刻就要注意了,有了window.onload这个方法约束后,该js是最后执行,那么 当去掉这个约束,你会发现这个函数
只是一个声明,在js当中,对于只是声明的函数,它会最先编译,所以这时候当执行到php的a标签时,因为它要调用的函数已经预先编译好了,所以就能够调用。
以上就是a标签不能调用js方法的问题的详细内容,更多请关注其它相关文章!
上一篇: AngularJS的环境搭建初学教程
下一篇: php断点调试的几种方法讨论
推荐阅读
-
HTML5<video>标签不能播放视频,<audio>标签不能播放音频的解决方法
-
php的静态方法调用有关问题,求大牛解答
-
在js文件中引入(调用)另一个js文件的三种方法
-
谈谈JS中常遇到的浏览器兼容问题和解决方法
-
解决3.01版的jquery.form.js中文乱码问题的解决方法_jquery
-
vue项目中,main.js,App.vue,index.html的调用方法
-
JS链式调用的实现方法_javascript技巧
-
PHP调用存储过程返回值不一致问题的解决方法分析_PHP
-
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
-
浏览器解析js生成的html出现样式问题的解决方法_javascript技巧