用jquery替换href点击行为
Replacing href click behavior with jquery
作为一个练习,我试图使导航栏中的链接收缩内容div,使用ajaxpage()在#content中加载页面,然后将其向下滑动。我正在使用以下内容:
EDIT:我意识到我可能需要回调函数中的所有内容,所以我解决了这个问题。不过,这个电话仍然不起作用。
$(document).ready(function()
{
$("a.link").click(function() {
//...
return false;
});
$("#navbar a").click(function(){
$("#content").slideUp(500,function(){
var a_href = $(this).attr('href');
ajaxpage(a_href, 'content');
$("#content").slideDown(500);
});
});
});
链接为:
<a class="link" href="home.php">Home</a>
当我测试它时,内容div会正确地向上滑动,但随后它会停留在那里,不会发生任何其他事情。我在这里做错了什么?
编辑:经过一些调试,似乎是罪魁祸首:
var a_href = $(this).attr('href');
当我声明该变量并通过alert()发送它时,它会显示"未定义"。我猜我没有正确地获取属性,所以这就是它挂起的地方!如何正确地获取您单击的链接的href属性?
我很确定您真正想要的是捕获被单击的元素的href。
$("#navbar a").click(function(){
var a_href = $(this).prop('href');
$("#content").slideUp(500,function(){
ajaxpage(a_href, 'content');
$("#content").slideDown(500);
});
});
但我们要清楚的是,在ajax调用返回任何数据之前,$('#content').slideDown(500)
;将要启动。您需要向ajaxpage
添加一个回调以接受为$.ajax()
的成功函数,这样您就可以确定何时启动slideDown()
。
当您决定在使用attr()
点击后应该使用href时。
$("#navbar a").click(function(){
var a_href = $(this).attr('href');
$("#content").slideUp(500,function(){
ajaxpage(a_href, 'content');
$("#content").slideDown(500);
});
});
相关文章:
- 获取不带Jquery的嵌套父HREF节点
- 在Laravel 5中使用JQuery从href提取值时出错
- 点击获取jQuery上的href属性
- 使用jquery删除href中的特定字符或标记
- 使用JQuery从包含A href值中设置*all*IMG-src值
- JQuery无法识别的表达式[href=#undefined]
- 使用 jQuery 从锚点中删除 href 的最干净方法
- 如何使用 jQuery 替换文本中的 HREF 链接
- 如何在 jQuery 中将 HTML 标记的 HREF URL 替换为不完整的属性
- 使用 Jquery 生成具有唯一 href 的按钮
- jQuery/js- 如何从基于 href 的类中获取菜单名称
- 如何覆盖beforeShow块中的.href?(jquery/fancybox)
- 使用 href=“#” JQuery 工作,但使用 href=“page.jsp” 不起作用
- href jQuery Colorbox issue
- 使用 href Jquery 的值更新输入
- 使用href-jquery动态删除选择选项值
- 获取href - jquery的名称
- 当链接在href - jquery中有散列时,链接只在移动设备上切换
- Javascript not triggering with href jquery mobile - data tra
- 防止标准的a href/jquery单击组合将#附加到url