关于jQ中隐式迭代和triggerHander、trigger、ach(function{})
关于视频中4分52秒的位置吧triggerHander换成each我不是很懂
jQ的隐式迭代是指一元素组成的数组,可以直接执行一些方法,jQ会自动取出每一个元素去执行,例如下面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<div class=""></div>
<br/>
<div class=""></div>
<br/>
<div class=""></div>
<br/>
<div class=""></div>
</body>
<script src="js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var divs=$('div');
divs.css({"background":"red",
"width":"200px",
"height":"200px"
})
</script>
</html>
第一次divs中的取第一个div,执行css方法,然后第二个。。。
divs.css()执行顺序应该是
divs.eq(0).css();
divs.eq(1).css();
divs.eq(2).css();
我查了下,triggerHandler() 方法与 trigger() 方法类似。不同的是它不会触发事件(比如表单提交)的默认行为,而且只影响第一个匹配元素。虽然只影响第一个元素,但jQ隐式迭代的优先级应该高些啊.
我试了下,直接改成
ui.find('select:gt('+(index+1)+')')
.attr('data-where','')
.trigger('reloadOptions');
也可以实现效果
正在回答
同学你好, triggerHandler() 这个方法只影响第一个匹配元素,所以即使有隐式迭代,也还是影响第一个。可以这样理解
记住这样使用就好。祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星