使用JavaScript重定向PHP脚本中的动态href

时间:2012-05-11 01:52:45

标签: php javascript jquery codeigniter redirect

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

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

这是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;
});

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

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

非常感谢任何想法!

3 个答案:

答案 0 :(得分:2)

我在评论中说:

  

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

原因如下:当您单击锚点时,事件开始向上传播通过文档结构(DOM)。当它到达另一个连接的元素以捕获click事件时,它会运行此元素的事件处理程序。

单击锚点时,click上的div.user处理程序将运行。那里的最后一个语句return false表示“停止事件传播,并阻止默认行为”。在锚点上,默认行为是跟随链接。您的代码告诉浏览器不要这样做。

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

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

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

而不是

document.location($(this).attr("href"));