如何检测新收音机按钮的变化?

时间:2014-01-16 16:07:15

标签: jquery ruby-on-rails javascript-events coffeescript radio-button

我有检测单选按钮更改的代码,然后调用按钮上的方法。它在现有按钮上工作正常,但是当我向页面添加新的单选按钮时(通过ajax),它对它们不起作用。如何让它检测新单选按钮的变化?

这是我的coffeescript代码:

jQuery ->
    $(".radio-button:radio").change ->
        doSomething(this)

在JS中看起来像这样:

jQuery(function() {
  return $(".radio-button:radio").change(function() {
    return doSomething(this);
  });
});

1 个答案:

答案 0 :(得分:1)

对于动态创建的元素,您需要使用.on()

进行事件委派
$(document).on('change','.radio-button:radio', function() {
    //Your code here
});

代替(对于静态元素)

$(".radio-button:radio").change(function() {
    //Your code
});

注意:您需要将$(document)替换为DOM&中存在的静态父选择器$(parent)。用它来获得更好的性能。