查手册用一种更优雅的委托写法,虽然也能很好的运行,中间还有些东西不知道如何完美处理

来源:3-4 改进代码--JS第二次尝试

ThinkSummer

2017-05-31 14:12

(function($){
	var num = 2;
	var $rating = $('#rating');
	var $lists = $rating.find('.rating-item');

	init(num);

	$rating.on({
		'mouseover' : function(e) {
			e.preventDefault();
			var i = $(this).index();
			init(i);
		},
		'click' : function(e) {
			var i = $(this).index();
			num = i;
		},
		'mouseout' : function(e) {
			init(num);
		}
	}, '.rating-item');

	function init(num) {
		$lists.each(function($i, el) {
			// console.log($i, el);
			if ($i <= num) {
				$(el).css('background-position', '2px -28px');
			} else {
				$(el).css('background-position', '2px 0');
			}
		});
	}
})(jQuery);

最后一个“mouseout”事件,是不应该委托的,但是用这种写法,我不知道该怎么写了,请老师指教。谢谢

写回答 关注

1回答

  • qq_T_T若是人间四月天_0
    2017-06-01 09:49:05
    已采纳

    再链接一个on写本身的委托方法就可以 和老师讲的一样

    ThinkS...

    对呀,混合使用。

    2017-06-01 11:50:39

    共 1 条回复 >

星级评分原理和实现(上)

本课程主要讲解如何使用不同的方式来实现星级评分的效果.

25809 学习 · 109 问题

查看课程

相似问题