语义 UI 动态添加 class 到输入字段

Semantic UI adding class dynamically to input field

在 SUI 中动态添加 class 到输入字段似乎有问题。

我的目标是在双击时激活禁用的输入,然后在模糊时再次禁用它。

https://jsfiddle.net/Greggg/e1x7jnor/2/ 第一次输入时,我成功地动态添加了 css。在第二个输入中,我试图通过添加 class 来做同样的事情,但它不起作用。

这是代码

<div class="column">
  <div class="ui disabled transparent test2 input">
  <input value="Add class do not work" type="text">
</div>

$(".disabled.transparent.test2").dblclick(function() {
  $(this).addClass('focus').removeClass('disabled transparent');    
  $(this).find('input[type=text]').addClass('active');
});

是 SUI 问题还是编码错误?

如有任何帮助,我们将不胜感激

格雷格

正在添加 class,但由于 specificity,背景颜色被另一条规则覆盖。

此外,由于 class active 是动态添加的,您需要使用 event delegation 来定位这些元素。

/* Focus on double click on page name */
$(".disabled.transparent.test1").dblclick(function() {
  $(this).addClass('focus').removeClass('disabled transparent');
  $(this).find('input[type=text]').css('background-color', 'red');
});

$(".disabled.transparent.test2").dblclick(function() {
  console.log('a')
  $(this).addClass('focus').removeClass('disabled transparent');
  $(this).find('input[type=text]').addClass('active');
});

$('.ui.input').on('blur', '.active', function() {
  alert("test");
  $('input').hasClass('.active').addClass('disabled transparent');
});
.ui.input input.active,
.ui.input.focus input.active {
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.4/semantic.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.4/semantic.min.js"></script>
<div class="column">
  <div class="ui disabled transparent test1 input">
    <input value="Add css work" type="text">
  </div>
</div>
<div class="column">
  <div class="ui disabled transparent test2 input">
    <input value="Add class do not work" type="text">
  </div>
</div>