Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
Jquery Resize issue. On width less than 768 width Click Option enable. Above 768 mouseover option enable
HTML
<div class="profile">
<a href="#" class="hoverdropdown" onclick="return false;">Profile</a>
<ul class="dropdown" style="display: none;">
<li><a href="#">Dashboard</a></li>
<li><a href="#">Logout</a></li>
</ul>
</div>
Jquery
$(document).ready(function(){
listDropdown();
});
$(window).resize(function(){
listDropdown();
});
function listDropdown()
{
var windowWidth=$(window).width();
if(windowWidth>=768)
{
$(".profile").each(function(){
$(this).mouseover(function(){
$(this).find(".dropdown").show();
});
$(this).find(".dropdown").mouseout(function(){
$(this).hide();
});
});
$(document).mouseout(function(e) {
if(($(e.target).parents('.profile').length<=0))
{
$(".profile .dropdown").hide();
}
});
}
else if(windowWidth<769)
{
$(".profile").each(function(){
$(this).click(function(){
$(this).find(".dropdown").toggle();
$(this).find(".hoverdropdown").children(".fa-plus").toggleClass("fa-minus");
});
});
}
}
在窗口宽度小于768的情况下,我必须启用单击选项。在窗口宽度大于768的情况下,我必须启用鼠标悬停选项。
即使是替代解决方案也是可观的。
查看小提琴
尝试以下
function listDropdown()
{
var windowWidth=$(window).width();
if(windowWidth>=768)
{
$('.profile').addClass('over');
$('.profile').removeClass('click');
}
else if(windowWidth<769)
{
$('.profile').removeClass('over');
$('.profile').addClass('click');
}
}
$("body").on('mouseover','.profile.over',function(){
$(this).find(".dropdown").show();
});
$(".dropdown").mouseout(function(){
if($(this).closest('.profile').is('.over')) {
$(this).hide();
}
$(document).mouseout(function(e) {
if(($(e.target).parents('.profile.over').length<=0))
{
$(".profile.over .dropdown").hide();
}
});
$("body").on('click','.profile.click',function(){
$(this).find(".dropdown").toggle();
$(this).find(".hoverdropdown").children(".fa-plus").toggleClass("fa-minus");
});
https://jsfiddle.net/12w7nb10/2/
这里有一个替代方法。
HTML
<div class="profile">
<a href="#" class="hoverdropdown" onclick="return false;">Profile</a>
<ul class="dropdown">
<li><a href="#">Dashboard</a></li>
<li><a href="#">Logout</a></li>
</ul>
</div>
CSS
.dropdown{
display: none;
}
.hoverdropdown:hover + ul{
display: block;
}
// If you are using jQuery Snippet
@media (max-width:767px){
.open .dropdown{
display: block;
}
}
jQuery
$('.hoverdropdown').click(function(){
$(this).parent().toggleClass('open')
})
相关文章:
- 选择框已禁用或由其他选择框的某个选项启用
- 如何在tinymce编辑器中启用字体系列和颜色选项
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 根据输入框上的写入动态启用/禁用选择选项
- Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
- 如何启用禁用的选择选项
- 如何使用复选框启用选项并通过本地存储进行保存
- 根据选择选项启用/禁用其他输入
- Javascript函数在活动选项卡上启用链接
- 在选择元素中选择第一个启用的选项
- 使用语义 UI 选项卡启用的多个路由的文档就绪函数应该去哪里
- IE中“启用本机XMLHTTP支持”选项的目的是什么?
- Jquery ui 如何选择那些启用的选项卡
- 角度 HTML 选择选项禁用和启用
- 从单个下拉菜单启用选项卡
- 如何禁用和启用选项卡加载使用功能
- 使用jQuery选项卡启用选项卡
- 如何在选择复选框时启用选项卡
- 如何在单击单选按钮时启用选项卡