手动更改时不会触发单选按钮事件侦听器

时间:2016-10-17 06:18:52

标签: javascript html radio-button addeventlistener event-listener

我正在使用

document.getElementById('myId').checked = true;

更改应检查哪个无线电输入/按钮。

它工作正常,但我也有一个事件监听器

document.getElementById('myId').onchange = function () {
  console.log(this.checked);
};

问题是当我点击无线电输入/按钮时会触发事件监听器,但是当我用代码更改checked状态时不会触发它。

1 个答案:

答案 0 :(得分:0)

来自docs

  

当控件失去输入焦点并且自获得焦点后其值已被修改时,会发生更改事件。此事件对INPUT,SELECT和TEXTAREA有效。元件。

因此,当您以编程方式更改值时,事件不会触发。所以你可以做的是以编程方式调用该函数来激活事件。

$cnjQ('.news-owlgrid').children().find('a.cn-read-more').each(function() {
    $cnjQ(this).click(function() {
        var contentHref = $cnjQ(this).attr('href');
        $cnjQ.fancybox({
            /*'width': 750,
            'height': 750,*/
            'type': 'iframe',
            'content': $cnjQ(contentHref).show(),
            //'content': $cnjQ(contentHref).html(),
            'beforeLoad': function() {

            },
        });
    });
});