onclick 为什么调用 jquery function

csdroot 2013-11-08 04:14:26
为什么在$(document).ready(function(){})里时onclick 不可以调用而在外面可以调用。
但是onclick是JavaScript的方法。


情况一无法 提示 Uncaught ReferenceError abc function is not defined

<input type='button' id='abc' value='-' title='测试1' onclick='abc()'>

$(document).ready(function(){
function abc(){

alert(1111)
}
})


情况2 能调用-------这么操作是正确的吗

<input type='button' id='abc' value='-' title='测试1' onclick='abc()'>
function abc(){

alert($("#abc").val())
}

...全文
330 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2013-11-09
  • 打赏
  • 举报
回复
真的是能力问题,你再进修下就会很多方法可以解决的。id都可以不要。
zhjdg 2013-11-08
  • 打赏
  • 举报
回复
能力问题。
clark523 2013-11-08
  • 打赏
  • 举报
回复
闭包问题。 在事件中只能调用 window作为上下文的基点的函数。
牧客网络 2013-11-08
  • 打赏
  • 举报
回复
使用class,给你个input统一一个class,然后 $(document).ready(function(){ $(".classname").click(function(){ alert($(this).val()); }); }) 我想你应该是想要这样的效果。
打字员 2013-11-08
  • 打赏
  • 举报
回复
簡單說來: 1里面的 abc 是局部function 2里面的 abc 是全局function 私有變量和公共變量有什麽區別,知道不?
csdroot 2013-11-08
  • 打赏
  • 举报
回复
但是有多个input的时候就要写好多id,当然用button选择器然后获取也可以。 但是第二情况是如何发生的呢?
引用 5 楼 xzy21com 的回复:
你了解一下闭包。如果想调用可这样写呀:
<input type='button' id='abc' value='-' title='测试1'>
<script type="text/javascript">
    $(document).ready(function(){
        function abc(){
            alert(1111)
        }
        $("#abc").click(function(){
            abc();
        })
    })
</script>
yyqq12276419 2013-11-08
  • 打赏
  • 举报
回复
引用 5 楼 xzy21com 的回复:
你了解一下闭包。如果想调用可这样写呀:
<input type='button' id='abc' value='-' title='测试1'>
<script type="text/javascript">
    $(document).ready(function(){
        function abc(){
            alert(1111)
        }
        $("#abc").click(function(){
            abc();
        })
    })
</script>
正解
好大一只鸭 2013-11-08
  • 打赏
  • 举报
回复
引用 5 楼 xzy21com 的回复:
你了解一下闭包。如果想调用可这样写呀:
<input type='button' id='abc' value='-' title='测试1'>
<script type="text/javascript">
    $(document).ready(function(){
        function abc(){
            alert(1111)
        }
        $("#abc").click(function(){
            abc();
        })
    })
</script>
+1
scscms太阳光 2013-11-08
  • 打赏
  • 举报
回复
你了解一下闭包。如果想调用可这样写呀:
<input type='button' id='abc' value='-' title='测试1'>
<script type="text/javascript">
    $(document).ready(function(){
        function abc(){
            alert(1111)
        }
        $("#abc").click(function(){
            abc();
        })
    })
</script>
yang_1224 2013-11-08
  • 打赏
  • 举报
回复
为button设置onclick属性的话 浏览器会在全局中查找对应的函数 情况2就是将函数声明在全局中 情况1则是将函数声明在了$(function(){});里面函数的作用域中 外部函数数访问不到的 具体可以参考一下作用域那一块的知识 个人理解 仅供参考
csdroot 2013-11-08
  • 打赏
  • 举报
回复
这是怎么个情况
csdroot 2013-11-08
  • 打赏
  • 举报
回复
csdroot 2013-11-08
  • 打赏
  • 举报
回复
这是什么原理?

87,907

社区成员

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

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