如何使一个悬停功能,也是一个点击功能使用javascript
How to make a hover function ALSO a click function using javascript
我有一个工具提示,可以在下面看到,目前它显示的工具提示只在悬停,但我希望它显示的工具提示,当悬停和点击(触摸屏设备)有人能告诉我如何?
我JSFiddlejavascript代码
<script type="text/javascript">
$(function(){
$("ul.thumb li").hover(function() {
$(this)
.css('z-index', '10')
.find('img').addClass("hover")
.stop()
.animate({
marginTop: '-150px',
marginLeft: '-150px',
top: '50%',
left: '50%',
width: '300px',
height: '300px',
padding: '20px'
}, 200, function() {
var $this = $(this),
h = $this.height();
$caption = $('<div class="caption">' + this.title + '</div>')
.css('top', h.toString() + 'px');
$this.after($caption);
});
}, function() {
$('.caption').remove();
$(this)
.css('z-index', '0')
.find('img').removeClass("hover")
.stop()
.animate({
marginTop: '0',
marginLeft: '0',
top: '0',
left: '0',
width: '200px',
height: '200px',
padding: '5px'
}, 400);
});
});
</script>
你可以创建一个函数,我们叫它activate
:
function activate(that) {
//Your code here
}
,然后这样使用:
$("ul.thumb li").hover(function() {
activate($(this));
});
$("ul.thumb li").click(function() {
activate($(this));
});
注意,activate
将保存在这些事件中需要处理的命令。另外,在activate
中,尽量确保您使用的是that
而不是this
。
首先,重构并重命名hover in/out函数:
function showTooltip(){
$(this)
.css('z-index', '10')
.find('img').addClass("hover")
.stop()
// etc...
}
function hideTooltip(){
$('.caption').remove();
$(this)
.css('z-index', '0')
.find('img').removeClass("hover")
.stop()
// etc...
}
然后不使用hover
简写,使用mouseenter
和mouseleave
事件来监听悬停:
$("ul.thumb li")
.on('mouseenter', showTooltip)
.on('mouseleave', hideTooltip);
如果你想显示触摸事件的工具提示,只需添加touchstart
事件:我猜你想要点击打开和关闭工具提示。
$("ul.thumb li")
.on('mouseenter touchstart', showTooltip)
.on('mouseleave touchstart', hideTooltip);
你可以使用jQuery .on()方法绑定一个处理程序到多个事件…
首先你需要命名这两个函数。然后你可以这样使用.on()
:
$("ul.thumb li").on('mouseover touchstart', show);
$("ul.thumb li").on('mouseleave touchend', hide);
更新JSFiddle 相关文章:
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 使用Jquery创建一个具有单击和悬停功能的菜单
- Navgoco不是一个影响密码保护页面的功能
- 如何创建一个脚本,该脚本给定网站列表,它使用其搜索功能来获取信息
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 重置功能,因此一次只有一个打开
- 具有双重功能的按钮:在_blank窗口中打开一个链接,再加上_self中的另一个链接
- 使用单选按钮参考另一个功能
- 一个Ajax函数能产生另一个Ajax功能吗
- 流星:移除不是一个功能
- 通过模糊功能传递链接,而不是单击另一个链接
- 使jQuery自动完成功能适用于多个单词(“跳过”一个单词)
- 浏览器同步摄像头加速视频播放不是一个功能
- 谷歌应用程序脚本搜索UI下一个和上一个功能
- 如何阻止一个Submit按钮运行Submit Click功能
- 如何使用上一个/下一个功能循环数组中的图像
- 是否可以设置一个功能“;联系我们”;页面使用HTML/CSS
- 最有效:不同的功能/一个功能有案例
- 我正试图找出如何使我的功能一个接一个地运行.但这并没有奏效
- Grails ajax功能——一个“恼人的bug”