首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mouseleave preventDefault问题

Mouseleave preventDefault问题
EN

Stack Overflow用户
提问于 2015-10-08 14:02:28
回答 1查看 302关注 0票数 0

我正试图在某些条件下preventDefault鼠标操作,但没有成功。这样做的目的是在mouseover/mouseleave上的禁用输入旁边显示/隐藏图标,并保持输入启用,这样就可以正常工作了。我不能做的是隐藏在模糊的图标。

HTML

代码语言:javascript
复制
<!-- Element -->
<div class="ui padded grid element">
  <div class="column">
    <a href="#"><i class="trash icon" style="display: none;"></i></a>
  </div>
  <div class="column page-element-page">
    <div class="ui disabled transparent input">
        <input value="Input 1" type="text" />
    </div>
  </div>
</div>
<!-- Element -->
<div class="ui padded grid element">
  <div class="column">
    <a href="#"><i class="trash icon" style="display: none;"></i></a>
  </div>
  <div class="column page-element-page">
    <div class="ui disabled transparent input">
        <input value="Input 2" type="text" />
    </div>
  </div>
</div>

JS

代码语言:javascript
复制
// Get input on dblClick
$(".disabled.transparent").dblclick(function () {
  $(this).addClass('focus').removeClass('disabled transparent');
  $(this).find('input[type=text]').addClass('active').focus();
});

// Disabled input on blur
$('.ui.input').on('blur', '.active', function () {
  $('.ui.input').addClass('disabled transparent');
});

 // Show trash icon on hover
$('.element').mouseover(function() {
  $(this).find('.trash').css('display', 'block');
})  

// Would like to keep trash icon on input focus and hide icon on blur
$('.element').mouseleave(function(event) {
  if($(this).find('input').is(":focus")) {
    event.preventDefault();
  } else {
  $(this).find('.trash').hide();
  }
});

这是一个小提琴

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-12 10:38:46

只需首先向.element添加一个活动类,就可以在CSS中修复它。使用CSS总是更好

代码语言:javascript
复制
$(".disabled.transparent").dblclick(function () {
$(this).addClass('focus').removeClass('disabled transparent');
$(this).find('input[type=text]').addClass('active').focus();
$(this).closest('.element').addClass('active');
    });

/* Disable input on blur page name */
$('.ui.input').on('blur', '.active', function () {
$('.ui.input').addClass('disabled transparent');
$(this).closest('.element').removeClass('active');
});

在CSS中

代码语言:javascript
复制
.page-element .trash,
.page-element .setting {
  display: none;
}

.page-element:hover .trash,
.page-element:hover .setting {
  display: block;
}

.page-element.active .trash,
.page-element.active .setting {
  display: block !important
}

这是http://jsfiddle.net/Greggg/e1x7jnor/6/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33018056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档