1

我有一个下拉用户菜单,其中包含无法正确重定向的子链接。不幸的是,我没有编写前端代码,所以我只是想让它链接到动态 PHP url。顺便说一句,我也在 CodeIgniter 框架内工作。用户的过程中有两次点击(类似于谷歌的用户图标)。1.您单击用户图像和下拉箭头, 2.您看到配置文件、设置、注销。

使用以下脚本,单击下拉箭头会重定向到第一个链接,配置文件,甚至不做下拉动画。有什么想法吗?

这是PHP文件:

<div class="user css3"> 
<a href="" class="css3"> <img src="images/user.jpg" alt="user" class="css3" /> </a>
    <div class="child css3">
      <ul class="user_links">
        <li><a href="<?=base_url()?>/profile/view/<?=$userID?>/myfeed">Profile</a></li>
        <li><a href="<?=base_url()?>/settings/">Settings</a></li>
        <li><a href="<?=base_url()?>/login/logout">Logout</a></li>
      </ul>
    </div>
  </div>

这是下拉箭头按钮的 JavaScript:

$('div.user').click(function() {
    $('div.user div.child').slideToggle("fast");
    $('div.live div.action div.category div.child, div.live div.action div.sort div.child').slideUp();
    return false;
});

这是我想出的 JavaScript <ul>(我不是 JS 开发人员。哈哈):

$('ul.user_links li a').click(function() {
    document.location($(this).attr("href"));
});

任何想法都非常感谢!

4

3 回答 3

2

我在评论中说:

<ul>删除, 然后return false从另一个块中删除 js ,它应该可以工作。

Here is why: when you click an anchor, the event starts propagating upwards through the document structure (the DOM). When it reaches another element wired to catch the click event, it runs this element's event handler.

When you click the anchor, the click handler on div.user runs. The last statement there, return false, means "stop the event propagation, and prevent the default behavior". On an anchor, the default behavior would be to follow the link. Your code told the browser not to do it.

于 2012-05-11T03:10:02.043 回答
0

尝试将 onclick 事件添加到返回 false 的下拉列表中,从而停止链接的默认操作。

<a href="" class="css3" onclick="javascript:return false"> <img src="images/user.jpg" alt="user" class="css3" /> </a>

或者更改它,使其只是一个“跨度”标签而不是“a”标签。您还必须更改导致下拉的 JQuery 选择器,以便它查找“span”而不是“a”

我不确定为什么您需要更改链接 3 链接的默认行为,但它们肯定会重定向到 href 位置吗?

于 2012-05-11T02:03:53.913 回答
0

不确定这是否是根本原因,但无论如何使用:

window.location = $(this).attr("href");

代替

document.location($(this).attr("href"));
于 2012-05-11T02:06:24.267 回答