我不太确定如果我没有在正确的范围内使用这个或什么,但我有一个脚本,基本上捕获链接点击,并导致页面淡出,然后再去链接的页面.但是,如果链接是
javascript onclick,则脚本失败.这是我的代码:
<script type="text/javascript"> pageObj = { init: function(){ $("body").fadeto("slow",1); },redirectPage: function(redirect){ window.location = redirect; },linkLoad: function(location){ $("body").fadeOut(1000,this.redirectPage(location)); } }; $(document).ready(function() { pageObj.init(); $("a").click(function(e){ e.preventDefault(); if (this.attr('onclick') !== undefined) { eval(this.attr('onclick').val()); } else { var location = this.href; pageObj.linkLoad(location); } }); }); </script>
解决方法
虽然diodeus是正确的,您需要在使用attr()(它是一个jQuery集合的方法,而不是HTMLElement)之前将其包装在jQuery集合中,您可以跳过attr().
$("a").click(function(e){ var location; e.preventDefault(); if ($.isFunction(this.onclick)) { this.onclick.call(this,e); } else { location = this.href; pageObj.linkLoad(location); } });
请注意,我使用该属性(当HTML文档加载时,属性通常预加载到属性中,其中on_______属性被预加载为方法.另请注意,我使用this.onclick.call()而不是eval(),设置正确的对于onclick方法,并确保访问事件对象作为参数.
原文地址:https://www.jb51.cc/jquery/176718.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。