javascript - 即使使用 'on' 之后,JQuery 也无法识别通过主干 View 添加的元素

标签 javascript jquery events backbone.js

$(document).ready(function(){
	$('.tagLines').on('mouseover', function(){
		$(this).css("background-color","#ffffff").css("box-shadow", "0 0 4px 4px #C9C9C9");		
	}).on('mouseleave', function(){
		$(this).css('background-color', '#F7F7F7').css("box-shadow", "0 0 2px 2px #C9C9C9");
	}).on('click', function(){
		window.location.hash = "manageMarks";
	});
	
	//this section is for all the views used in the application
		var PGHome = Backbone.View.extend({
			tagName: 'div',
			
			initialize: function(){
				
			},
			
			render: function(){
				var template = _.template($("#home").html(), {} );
				this.$el.html( template );
			}
		});
		
		var pgHome = new PGHome({el: $("#bodyContainer") });	
	//***********************************************************

	//this is a router for the application
		var NavRouter = Backbone.Router.extend({
			routes:{
				"manageMarks": "manage",
				"": "home"
			}
		});
		
		 var navRouter = new NavRouter();
		 navRouter.on('route:manage', function(){
			 console.log("Manage Modules");
		 }).on('route:home', function (){			 
			  pgHome.render();
		 });
		
		Backbone.history.start();	
	//******************************************	
	
});

上面是一个 js 片段,它的工作原理是渲染带有主干的 View 。问题是渲染 View 后,渲染的元素的事件(单击、鼠标悬停、鼠标离开)不会触发。这些事件在添加主干之前就已经开始工作了。有人可以帮忙吗?

最佳答案

您需要使用event delegation ,因为您在元素被附加到页面之前添加了事件

$("#bodyContainer").on('mouseover', '.tagLines', function(){
    $(this).css("background-color","#ffffff").css("box-shadow", "0 0 4px 4px #C9C9C9");     
}).on('mouseleave', '.tagLines', function(){
    $(this).css('background-color', '#F7F7F7').css("box-shadow", "0 0 2px 2px #C9C9C9");
}).on('click', '.tagLines', function(){
    window.location.hash = "manageMarks";
});

关于javascript - 即使使用 'on' 之后,JQuery 也无法识别通过主干 View 添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646287/

相关文章:

javascript - 下拉菜单需要起点

jquery - 导航和内容重叠方式的问题

javascript - 如何在 dgrid 中使用 dnd 实现行重新排序

javascript - 仅当光标位于输入字段时禁用回车键回发

javascript - RegExp/Jquery/Isotope 按关键字搜索和过滤 : not working with some keyword combination, 为什么?

javascript - Node.js 上的事件相关递归

javascript - Meteor - 如何在模板事件函数中正确路由

java - Guava 事件总线 : How to return result from event handler

javascript - 注入(inject)工厂时 Angular 停止工作

javascript - Android CSS spritesheet webkit 转换和动画的问题