Nat*_*man 2 javascript jquery opera
我有以下内容:
<a href="javascript:jQuery('body').css('backgroundColor','red');">Test</a>
Run Code Online (Sandbox Code Playgroud)
在Chrome中运行时,它会按预期运行并将页面变为红色.但是,在Opera中我得到:
[对象]
仔细检查发现Opera认为这javascript:Query('body')...是某种URL.我究竟做错了什么?Opera不识别属性中的javascript:链接href吗?
jsFiddle:http://jsfiddle.net/9CZZL/
编辑:似乎也是一个Firefox问题......
问题是返回值jQuery('body').css('backgroundColor','red')是一个对象,一些浏览器将其解释为网页的新内容.要解决此问题,您可以使用JavaScript void运算符将其转换为undefinedFF和Opera(以及其他可能的其他人)将按照您的意图处理.您会注意到该问题也在该页面上进行了描述,因为它是void运营商的主要用例(除了代码高尔夫之外,其中void 0的字符数少于undefined).
<a href="javascript:void(jQuery('body').css('backgroundColor','red'));">Test</a>
Run Code Online (Sandbox Code Playgroud)
这应该给出预期的结果:http://jsfiddle.net/9CZZL/13/
应该注意的是,以这种方式处理点击被认为是不好的做法.相反,建议在JavaScript中使用事件处理程序.这有助于分离Web应用程序的不同层,从而使将来的调试更加容易.
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |