我有一个下拉用户菜单,其中包含我无法正确重定向的子链接。遗憾的是我没有编写前端代码,所以我只是想让它链接到动态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"));
});
非常感谢任何想法!
答案 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"));