所以我有这个元素#box需要有悬停效果,当悬停时它会自动移位。该元素将在jQuery中使用.hover正确悬停,然后我需要单击以显示某些内容,但在单击后它不再具有悬停效果,所以我使用.unbind删除它。现在,当用户重新点击元素时,它将隐藏信息,然后重新应用悬停效果。就像切换效果一样。我的问题是什么是最干净的方法。
HTML:
.box {
height: 320px;
width: 320px;
background-color: rgba(0, 0, 0, 0.6);
position: relative;
left: 10px;
top: 10px;
transition: all 1s;
-webkit-transition: all 1s;
-moz-transition: all 1s;
-o-transition: all 1s;
}
.headline {
margin: 0 auto;
color: white;
text-align: center;
display: block;
padding-top: 130px;
font-family: 'Montserrat', sans-serif;
}
.box_hover {
left: 0px;
top: 0px;
height: 300px;
width: 300px;
CSS:
$(".box").hover(
function() {
$(this).toggleClass("box_hover");
}
);
$('#box').click(function() {
$(this).unbind('mouseenter mouseleave');
});
}
JQuery的:
{{1}}
以下是JSFiddle
编辑1:
为了澄清我需要它在它徘徊时添加类,然后当它点击时保持“mouseenter”外观,然后当它重新点击时返回到能够根据“mouseenter”悬停和移动,“mouseleave”。
谢谢!
答案 0 :(得分:1)
除了取消绑定事件之外,你可以使用一个布尔变量来点击事件将切换,这将控制是否调用toggleClass
:
var bind = true;
$(".box").hover(
function() {
if(bind) $(this).toggleClass("box_hover");
}
);
$('#box').click(function() {
bind = !bind;
});
答案 1 :(得分:0)
如果我理解正确的意图,您只需要在点击时切换课程:
import xlsxwriter
# Create an new Excel file and add a worksheet.
workbook = xlsxwriter.Workbook('C:\\Users\\Excel\\Desktop\\book1.xlsx')
worksheet = workbook.add_worksheet()
# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 20)
# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})
# Write some simple text.
worksheet.write('A1', 'Hello')
# Text with formatting.
worksheet.write('A2', 'World', bold)
# Write some numbers, with row/column notation.
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
workbook.close()
Updated JSFiddle showcasing this
希望这有帮助!
修改强>
根据链接的运行方式,您可以使用jQuery Mobile弹出窗口,而且根本不需要更改绑定。
您需要包含外部脚本:
$('#box').click(function() {
$(this).unbind('mouseenter mouseleave');
$(this).toggleClass("box_hover");
});
稍微更改一下HTML:
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
与CSS一起:
<div class="box" id="box">
<h1 class="headline"><a href="#aboutme" data-rel="popup">ABOUT ME</a></h1>
</div>
<div data-role="popup" id="aboutme" class="ui-content">
<h3>Welcome!</h3>
<p>Popup content</p>
</div>
然后,对于jQuery,您只需使用:
.headline a {
text-decoration: none;
color: inherit !important;
}
我创建了一个新的JSFiddle,展示了here。
答案 2 :(得分:0)
您可以在元素具有mouseenter
类时委派mouseleave
/ .hover-effect
个事件。然后,您可以在单击元素时切换该类。
这样做时,mouseenter
/ mouseleave
事件只会在元素具有.hover-effect
类时触发,并且由于该类在单击时切换,因此您基本上是绑定的每次点击都解除悬停事件的绑定。
<强> Updated Example 强>
$(document).on('mouseenter mouseleave', '.box.hover-effect', function (event) {
$(this).toggleClass("box-hover", event.type === 'mouseenter');
});
$('.box').on('click', function() {
$(this).toggleClass('hover-effect');
});