我如何将动态事件绑定到创建的n个元素中?我将尝试使用此代码,但是元素始终使用变量i的最后状态(i = 8),范围是否存在问题?

        console.log('add all children');

        var myloc = window.location.href + "jquery";
        var jquerySample = 8;

        for (i = 1; i <= jquerySample; i++) {

            var element=jQuery('<div/>', {
                id: 'subitemElement' + i,
                href: myloc + "/test_jQ_" + i,
                class: 'subitem',
                rel: 'external',
                text: "test_jQ_" + i,
                click: function(num) {
                    console.log("subitem jquery click");

                    window.location = myloc + "/test_jQ_" + num;
                }(i)
            });
            element.appendTo('#itemJQUERY');

            event.preventDefault();
        }

最佳答案

jQuery('#itemJQUERY').on('click','.subitem',function(){
    window.location = $(this).data('url');
});


http://jsfiddle.net/5Lvyoh7u/1/

10-06 11:06