如何将javascript函数绑定到DOM上动态添加的Element



我正在尝试使用我在codrop中找到的一些完整的JavaScript代码来创建自定义选择框,但我无法绑定这个JavaScript函数

(function() {
        [].slice.call( document.querySelectorAll( 'select.cs-select' ) ).forEach( function(el) {
            new SelectFx(el);
        } );
    })();

到动态添加的元素。

演示代码:http://codepen.io/AnandAyan/pen/rVpGPJ

让我们介绍一下上的jQuery

$('body').on('click', '.cs-select', function(event) {
  console.log('I fired!!!');
  new SelectFx(this);
});
$('.add').click(function() {
  $('.container').append('<select class="cs-select cs-skin-elastic"><option value="" disabled selected>Select a Country</option><option value="france" data-class="flag-france">France</option><option value="south-africa" data-class="flag-safrica">South Africa</option></select>');
});

http://codepen.io/anon/pen/VLyMJO

但你可能想在更改时触发一个函数,对吧?


更新基于下面的评论讨论,我认为是正确的。谢谢@斜视。

$('.add').click(function() {
  var $newElement = $('<select class="cs-select cs-skin-elastic"><option value="" disabled selected>Select a Country</option><option value="france" data-class="flag-france">France</option><option value="south-africa" data-class="flag-safrica">South Africa</option></select>');
  $('.container').append($newElement);
  new SelectFx($newElement[0]);
});

最新更新