Javascript 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画
我有一个简单的悬停动画;我分离了和函数来定义mouseleave上的contidion。如果这是真的;禁用mouseleave函数,但我无法使此条件生效,javascript忽略我的条件并运行mouseleave函数 jQuery:Javascript 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画,javascript,jquery,hover,jquery-animate,conditional-statements,Javascript,Jquery,Hover,Jquery Animate,Conditional Statements,我有一个简单的悬停动画;我分离了和函数来定义mouseleave上的contidion。如果这是真的;禁用mouseleave函数,但我无法使此条件生效,javascript忽略我的条件并运行mouseleave函数 jQuery: $('.bigBox').mouseenter(function() { $('.trigger').stop().animate({'left':'-50px'},222); $('.bigBox').stop().animate({'left'
$('.bigBox').mouseenter(function() {
$('.trigger').stop().animate({'left':'-50px'},222);
$('.bigBox').stop().animate({'left':'-1px'},222);
});
var holdCondition = $('#hold').hasClass('selected');
//tried to disable mouseleave here but didnt work
if ( !holdCondition ) {//if #hold has not class selected
$('.bigBox').mouseleave(function() {
$('.trigger').stop().animate({'left':'-1px'},222);
$('.bigBox').stop().animate({'left':'-111px'},222);
});
}
$('.option').click(function(){
$('.option').removeClass('selected');
$(this).addClass('selected');
});
html:
何时将“seleced”应用于id为“hold”的元素? 我怀疑这会发生在用户交互上,而不一定是在页面加载上 你写这篇文章的方式:
if ( !holdCondition ) {//if #hold has not class selected
$('.bigBox').mouseleave(function() {
如果不是holdCondition,mouseleave将在pageload上定义
你要的是检查!mouseleave内部的保持条件:
$('.bigBox').mouseleave(function() {
if ( !holdCondition ){
$('.trigger').stop().animate({'left':'-1px'},222);
$('.bigBox').stop().animate({'left':'-111px'},222);
}
});
您的
holdCondition
将只运行一次,而您必须每隔.mouseleave()
检查一次。
试试这个
我已经编辑了你的代码,检查一下,看起来我犯了一个简单的错误,鲍勃。谢谢你指出这一点。
if ( !holdCondition ) {//if #hold has not class selected
$('.bigBox').mouseleave(function() {
$('.bigBox').mouseleave(function() {
if ( !holdCondition ){
$('.trigger').stop().animate({'left':'-1px'},222);
$('.bigBox').stop().animate({'left':'-111px'},222);
}
});
$('.bigBox').mouseleave(function() {
var holdCondition = $('#hold').hasClass('selected');
if ( !holdCondition ) {//if #hold has not class selected
$('.trigger').stop().animate({'left':'-1px'},222);
$('.bigBox').stop().animate({'left':'-111px'},222);
}
});