jQuery为动态加载完成的元素添加点击事件

  • Post author:
  • Post category:其他


1.加载元素

$.ajax({
	type: "get",
	url:baseUrl + "/dict/classes",
	crossDomain:true,
	dataType:"json",
	cache:false,
	success: function(msg) {
		if(!msg ) {
			return;
		}
				
		generateOptions(msg, "classes", "类");
		getCities(msg[0]['diId']);
		callBack();
	},
	error: function(e) {
		if(e.responseJSON && e.responseJSON.data && e.responseJSON.data.error) {
		    errorHandler(e.status, null, e.responseJSON.data.error);
		}
	}
});
			var generateOptions = function(opts, id, type) {
				
				var options = "<b>"+type+":</b>";
				for(var i=0,len=opts.length; i<len; i++) {
					
					if(!opts[i])
						continue;
					options = options + "<span id='" + opts[i]['diId'] +  "' name='"+id+"' >" + opts[i]['diName'] + "</span>  ";
				}
				
				$("#" + id).html(options);
			};

2.使用回调函数,添加点击事件,回调函数使点击事件与元素处于同个域中,使点击事件可以生效。

			var callBack = function (){
				$("[name='classes']").unbind('click').on('click', function() {
					
					var tid = $(this).attr('id');

					$.ajax({
						type: "get",
						url:baseUrl + "/dict/species?classesId=" + tid,
						crossDomain:true,
						dataType:"json",
						cache:false,
						success: function(msg) {
							generateOptions(msg, "species", "别");
							callBack();
						},
						error: function(e) {
							if(e.responseJSON && e.responseJSON.data && e.responseJSON.data.error) {
					    		errorHandler(e.status, null, e.responseJSON.data.error);
							}
						}
					});
				});
		  };
	



版权声明:本文为yexiaojiu1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。