在运行时创建的HTML单选按钮仅在第一次更改时

时间:2017-02-23 00:44:01

标签: javascript jquery twitter-bootstrap

我在运行时创建了一组嵌套在其标签中的单选按钮。

然后我关联一个on change事件:它仅在第一次更改时被触发:如果我第二次单击这些单选按钮,它就不会 - 即使在此期间我点击了另一个单选按钮。

我正在使用jQuery 3.x,Bootstrap 3.3.7,并在OSX上的最新Chrome上运行

我应该从哪里开始调查?

1 个答案:

答案 0 :(得分:1)

当元素发生更改时,必须将事件侦听器绑定到单选按钮本身,而事件不再被元素侦听。

此问题的解决方案是使用委托。查看下面的文档,因为您使用的是jQuery,

http://api.jquery.com/delegate/

$( "table" ).on( "click", "td", function() {
  $( this ).toggleClass( "chosen" );
});

简单来说,委托将事件绑定到父级(不一定是直接的),当目标元素(文档就绪的现有元素或运行时动态生成的元素)被点击时,事件就会冒泡。您的代理人(上面示例代码中的table)将捕获事件并执行某些任务。