jQuery悬停后访问子页面
jQuery hover after visit subpage
我遇到了一些jQuery代码的问题。
当我加载我的主页时,图片上的slideDown悬停功能正在工作,但是当我访问其他子页面然后返回我的主页时,slideDown悬停功能不工作。
编辑:你可以在我的页面上看到:193.218.134.131:3000
下面是我的代码:
$(document).ready(function() {
$('.standard').hover(
function(){
$(this).find('.caption').show();
},
function(){
$(this).find('.caption').hide();
}
);
$('.fade').hover(
function(){
$(this).find('.caption').fadeIn(250);
},
function(){
$(this).find('.caption').fadeOut(250);
}
);
$('.slide').hover(
function(){
$(this).find('.caption').slideDown('fast');
},
function(){
$(this).find('.caption').slideUp('fast');
}
);
});
<div class="grid-block slide">
<div class="caption">
<h2><%= link_to "About us", about_path %></h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p><%= link_to "About us", about_path, :class => 'learn-more' %></p>
</div>
<%= link_to image_tag("about2.jpg", :class => 'img-rounded img-responsive', :alt => 'test alt'), about_path %>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
为什么这个不能正常工作?
我们开始吧。实际上,您根本没有离开当前页面。你所做的就是加载叠加,相应地操纵DOM
。这就是你的活动搞砸的时候。您需要的解决方案是事件委托。
From the doc: Delegated事件的优点是它们可以处理来自后代元素的事件,这些事件稍后会添加到文档中。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁地附加和删除事件处理程序。例如,该元素可以是模型-视图-控制器设计中视图的容器元素,或者是事件处理程序想要监视文档中所有冒泡事件的文档。在加载任何其他HTML之前,document元素在文档的头部可用,因此在那里附加事件是安全的,而无需等待文档准备好。
下面是一个演示,说明如何修改代码以在动态DOM
上保持事件完整。
$(document).ready(function() {
$(document).on({
'mouseenter': function() {
$(this).find('.caption').slideDown('fast');
},
'mouseleave': function() {
$(this).find('.caption').slideUp('fast');
}
}, '.slide');
});
更改代码的其他两个部分以匹配上述模式。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 当鼠标悬停在文本中的单词上时显示警报
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 手风琴可点击并悬停
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 悬停功能触发器
- 如何访问fastOpt.js
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 悬停时弹出文本框,无法访问 HTML
- 触发鼠标悬停事件时访问 Raphael 元素的属性 (attr)
- 尝试单击下拉菜单中的链接,该链接只能通过将鼠标悬停在元素上来访问
- 访问悬停点数据系列highstock
- jQuery悬停后访问子页面