作业帮 > Javascript > 教育资讯
javascript教程:新手遇到的一些jquery问题
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 08:58:21 Javascript
javascript教程:新手遇到的一些jquery问题Javascript
【51Test.NET-javascript教程:新手遇到的一些jquery问题】:
最近在做项目的时候使用了Jquery~新手学习jquery.~遇到了一些"奇怪"的问题(各位大神别拍砖).
感谢ClassYuan老大的支持..ClassYuan的blog.http://www.classyuan/.下面列举一些:
1.跟HTML元素加载事件的时候,会在加载的时候同时执行该事件。
错误代码:
1 | $( "#btnLoad" ).bind( "click" ,GetProduct()); |
正确代码
1 | $( "#btnLoad" ).bind( "click" , function () { GetProduct() }); |
我在这段代码,忽略了Bind这个方法.Api的解释是bind(type,[data],fn)
我错误的讲fn当做一个简单的function..导致这段代码会在加载的时候执行一次这个fn..
这是一个书写格式的疏忽.希望知道原因的大神可以指点。
2变量作用域的问题.(貌似这个不是jquery的问题.而是js跟的区别..)
1 | function text() { |
2 | for ( var i = 0; i < 3; i++) { |
3 | $( "删除" ).attr({ id: "hr_" + i, href: "javascript:;" }).addClass( "btnCSS" ).bind( "click" , function () { tes(i) }).appendTo( ".div_list" ); |
4 | } |
5 | } |
6 | function tes(id) { |
7 | alert(id); |
8 | } |
这个函数.我想让他alert出相应的id..结果..答案很同意..3个标签的函数..弹出来都是3..
看了一下..明白了
变量作用域的问题,传个tes函数的参数是循环结束后i的值,所以全部是3。
这一点似乎和不一样。
最后接解决方案- -..直接吧$(this)传递进去了
3.事件执行顺序的问题
1 | < a target = "_blank" title = "Iphone" > |
2 | < img id = "proImg7_2" src = "" alt = "Iphone" style = "width:70px; height:60px; border:none;" /> |
3 |
a > |
给这个图片绑定了onclick事件,事件的内容是给标签的parent增加一个href属性.
但是事件执行完毕之后,将会直接跳转到a标签的链接。经过分析.
应为click是在href之前执行的,也就是当点击图片的时候A标签已经有了href,然后同时又触发了A标签.
解决方案..去掉外层的a标签..然后修改事件
Javascript