为了账号安全,请及时绑定邮箱和手机立即绑定

这个JQ的function中的event到底传的是什么,怎么传的

   这个JQ的function中的event到底传的是什么,怎么传的,写方法的时候没用event,调用就看到color这个参数被用了,可是删掉event又错了,求大神普及       

 $(function () {
                $("div").bind("changecolor", function (event,color) {
                    $(this).css("background-color",color);
                });
                $("div").trigger ("changecolor",["red"]);
            });


正在回答

3 回答

回复 小舟1:个人的新理解  不知道对不对  你可以在$("div").bind("changecolor", function (event,color) {

                    alert(event+"  "+color);

                    $(this).css("background-color",color);

                });里加上alert这段代码  就可以知道event的类型是对象 所以event是需要传进去的对象(也就是需要改变属性的对象),然后这个对象在函数体里就是 this 有了确切的值 


不能把event删除的原因应该是 颜色的改变需要指明是哪个对象 所以需要一起出现 如果不要参数的话 就两者都不要也是可以成功运行的  希望对你有用


0 回复 有任何疑惑可以回复我~
#1

慕桂英9545975 提问者

那为什么不这么写呢 $(function () { $("div").bind("changecolor", function (event,color) { $(event).css("background-color",color); }); $("div").trigger ("changecolor",["this","red"]); }); ​
2016-05-30 回复 有任何疑惑可以回复我~
#2

慕桂英9545975 提问者

顺便说一下,这么写也是不对的
2016-05-30 回复 有任何疑惑可以回复我~
#3

一墨飞雪 回复 慕桂英9545975 提问者

那是因为你写错了 ,["this","red"] 这里面的两个参数 只读取了一个参数,我还没太弄懂trigeer的多个参数怎么传递 而且this也不是参数 你要传的也该是div 不过加div也是不出效果的 因为trigeer只读取第一个参数
2016-05-31 回复 有任何疑惑可以回复我~

event 可以是任意值,只要不为空就行,function(event , color)是参数 而"background-color"是值

0 回复 有任何疑惑可以回复我~
#1

慕桂英9545975 提问者

那为什么写成这样不对呢 $(function () { $("div").bind("change-color", function (event,color) { $(this).css(event,color); }); $("div").trigger ("change-color",["background-color","red"]); });
2016-05-16 回复 有任何疑惑可以回复我~
#2

来年灬来年 回复 慕桂英9545975 提问者

我也是这么想的
2016-05-17 回复 有任何疑惑可以回复我~
#3

一墨飞雪 回复 慕桂英9545975 提问者

个人理解,不知道对不对,仅供看看 function (event,color) 中的参数是key value模式的,key是名,value是值,所以最后$("div").trigger ("change-color",“red”)中只有一个值传到函数中 而key在函数中就给出来了,
2016-05-17 回复 有任何疑惑可以回复我~

 $("div").bind("changecolor", function (event,color) {

                    $(this).css("background-color",color);

                });

以上代码是先给 div  绑定一个事件 该事件不会响应 不会有效果出现

  $("div").trigger ("changecolor",["red"]);

以上代码是触发事件的代码 触发后,事件响应 才会出现效果

0 回复 有任何疑惑可以回复我~
#1

慕桂英9545975 提问者

那event到底是干什么用的呢
2016-05-16 回复 有任何疑惑可以回复我~
#2

来年灬来年

应该是传参吧,必须要传进来
2016-05-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

这个JQ的function中的event到底传的是什么,怎么传的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信