1
<script type="text/javascript">
$(document).ready(function() {
$("body").css("display", "none");
$("body").fadeIn("slow");
    $("a.link").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut("slow", redirectPage);        
    }); 
    function redirectPage() {
        window.location = linkLocation;
    }
});
</script>

使用“onclick”时,“fadeOut”不起作用。不使用“href”可以实现吗?

<a class="link" onclick="window.location='index.php'">index.php</a>
4

3 回答 3

1

您的脚本适用于此:

<a class="link" href="http://google.de">index.php</a>

它淡出“正文”,然后重定向到谷歌。

它也可以在没有 href 的情况下工作:

<a class="link">index.php</a>

在这种情况下,它只会“刷新”当前页面。

如果您不想将链接存储在 href 属性中,可以这样做:

<a class="link" data-link="index.php">index.php</a>

这是有效的 HTML,您可以读取新的而不是 href 属性:

$(this).attr('data-link');

您不必在链接中设置另一个“onclick”处理程序。因为这个会首先触发,在 jQuery 事件处理程序完成之前。

于 2012-06-24T16:15:31.153 回答
0

为什么不?

<a class="link" href='index.php'>index.php</a>

您正在为一个事件使用 2 个单击处理程序,这会导致意外行为。

于 2012-06-24T16:15:14.793 回答
0

您已经在标记中定义了一个 onclick 处理程序,该处理程序会立即更改 windows.location。

另一个处理程序(通过 JQuery 定义)也被触发,但没有时间运行,因为第一个处理程序更改了页面。

您必须消除标签中的 ont 才能看到淡出。

于 2012-06-24T16:26:47.993 回答