我真的不明白为什么我的on事件不适用于jquery。 html是在处理程序之后生成的,但必须有效:
Calendar = function(){
this.init = function(elem, path, callback){
this.elem = elem;
$.ajax({
url:path,
type:'GET',
context: this,
success:function(data){
this.data = data;
callback();
}
})
}
this.generateBase = function(){
var base = '<div class="row-fluid" >';
base += '<div class="span3" id="month" ></div>';
base += '<div class="span9" id="week" ></div>';
base += '</div>';
$(this.elem).html(base);
}
}
$('#month').on('click',function(){
alert('aa');
});
我就这样使用它
<script type="text/javascript" >
$(document).ready(function(){
var calendar = new Calendar();
calendar.init('#calendar',path,function(){
calendar.generateBase();
});
});
</script>
我真的不明白为什么点击
没有警报感谢您的帮助
答案 0 :(得分:2)
您需要将事件委托给动态添加元素的父级,如果您确实知道父级可以委托给文档。
$(document).on('click', '#month',function(){
alert('aa');
});
委派活动的优势在于他们可以处理来自的活动 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免频繁附加和删除事件处理程序reference。
答案 1 :(得分:2)
尝试
$(document).on('click','#month',function(){
alert('aa');
});