单击功能不适用于新添加的类

时间:2016-07-20 10:17:58

标签: jquery html css

我有一个按钮,在点击时将newClass添加到父div,它还会显示另一个按钮。我要做的下一件事是在.newClass .display-info上显示一些带有点击功能的文字。

我发现的所有答案都引用了jQuery .live方法,但这已被弃用。相反,我使用.on方法但没有任何结果...

这是示例代码:

JSFiddle

HTML:

<div class="parent">
  <button class="btn-click">
    Click me
  </button>

  <button class="display-info">
    Show text
  </button>
  <span class="show-this">Text to be displayed</span>
</div>  

JS:

$('.btn-click').click(function() {
    $(".parent").addClass('newClass');
  $(".display-info").show();
});

$('.newClass .display-info').on("click",function() {
    $('.show-this').show();
});

CSS:

.display-info, .show-this {
  display:none;
}

3 个答案:

答案 0 :(得分:2)

总是喜欢与文档相关的方法。

取代此

$(document).on("click",".newClass .display-info",function() {
    $('.show-this').show();
});

如下所示

CATransaction.begin()
CATransaction.setCompletionBlock {
    let cell = self.tableView(self.tableView, cellForRowAtIndexPath: self.editingIndexPath!) as! TallyCell
    cell.titleTextField.hidden = false
}

tableView.beginUpdates()
tallies.append("Example")
tableView.insertRowsAtIndexPaths([editingIndexPath!], withRowAnimation: .Left)
tableView.endUpdates()
CATransaction.commit()
let cellNew = self.tableView(self.tableView, cellForRowAtIndexPath:self.editingIndexPath!) as! TallyCell
cellNew.titleTextField.becomeFirstResponder()

答案 1 :(得分:0)

试试这个:

$('.btn-click').click(function() {
  $(".parent").addClass('newClass');
  $(".display-info").show();
  $('.newClass .display-info').on("click",function() {
     $('.show-this').show();
  })
});

答案 2 :(得分:0)

这是因为你正在使用

$('.btn-click').click()

它只适用于静态dom,但是你动态地提供了一个类,这就是为什么它不起作用。所以对于动态内容总是使用on()jquery