关于jQ中隐式迭代和triggerHander、trigger、ach(function{})

关于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');

也可以实现效果


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好, triggerHandler() 这个方法只影响第一个匹配元素,所以即使有隐式迭代,也还是影响第一个。可以这样理解

http://img1.sycdn.imooc.com//climg/5eb4f771092b9bcd04980242.jpg

记住这样使用就好。祝学习愉快!

好帮手慕星星 2020-05-08 11:19:14

同学你好,关于隐式迭代是可以这样理解的,没有问题。

关于trigger,这段代码测试是可以的

http://img1.sycdn.imooc.com//climg/5eb4cf69090f0cdc03940094.jpg

可以找到下面所有的select触发reloadOptions事件,怎么写都可以。

祝学习愉快!

  • 提问者 王文辉 #1
    为什么triggerHandler不可以,我感觉应该也行的,虽然测试了确实不行。 从结果上来看,就是函数优先于硬是迭代吗,可是隐式迭代是选取元素的,没有元素,那么element.triggerHandler后面的triggerHandler就没办法执行啊
    2020-05-08 12:10:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师