如果我这样称呼:
$(".month-selector").change(function(){
setStones();
});
在$(document).ready()
内,它不适用于稍后创建的元素。我也尝试在创建它们之后调用上面的代码:
$("#month-selectors").html(month_selectors);
$(".month-selector").change(function(){
setStones();
});
它仍然不起作用。但是,如果我创建一个静态的,它可以工作。
如何在页面加载后创建元素时将其应用于元素?
答案 0 :(得分:14)
您可以使用jQuery的'live()'方法将事件侦听器添加到当前和未来的节点。
$(".month-selector").live('change', function(){
setStones();
});
答案 1 :(得分:2)
这非常有帮助!但是,如果您在加载DOM后添加输入事件,则需要使用“click”事件才能使其工作:
$("input#thename").live("click", function(event) {
// handler for what should happen when somebody clicks on the new input field, in this case I needed a datepicker to pop up so lets get that fired. Now that the click element registered the new input object with the DOM, it can be used like a normal jQuery selector!
$("input#thename").datepicker();
});
答案 2 :(得分:0)
尝试:
$(".month-selector").live("change", function(event) {
// some code
});