一个老帖子,但我喜欢分享,因为我有同样的情况,但我终于知道了问题所在:
问题是:我们使一个函数可以使用指定的HTML元素,但是尚未创建与此函数相关的HTML元素(因为该元素是动态生成的)。为了使它起作用,我们应该在创建元素的同时使函数起作用。元素优先于与之相关的功能。
简单地说,一个函数将只对在它之前创建的元素起作用。动态创建的任何元素都意味着他。
但是请检查没有注意上述情况的此样本:
<div class="btn-list" id="selected-country"></div>
动态附加:
<button class="btn-map" data-country="'+country+'">'+ country+' </button>
通过单击按钮,此功能运行良好:
$(document).ready(function() {
$('#selected-country').on('click','.btn-map', function(){
var datacountry = $(this).data('country'); console.log(datacountry);
});
})
或者你可以像这样使用身体:
$('body').on('click','.btn-map', function(){
var datacountry = $(this).data('country'); console.log(datacountry);
});
与此相比,这不起作用:
$(document).ready(function() {
$('.btn-map').on("click", function() {
var datacountry = $(this).data('country'); alert(datacountry);
});
});
希望对你有帮助