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

关于最后.click(1111,data);

为什么该查这样就不能用了呢      $("button:eq(2)").click(1111, data(e))

正在回答

3 回答

要么你给个父元素,要么用这个.filter()

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

油金哇卡呀酷咧 提问者

能具体点不 大神
2016-10-05 回复 有任何疑惑可以回复我~

js中作为值的函数的调用格式是这样的:

function callSomeFunction(someFunction, someArgument){

    return someFunction(someArgument);

}

上面这段代码,是小白在书上看到的。

 在这里callSomeFunction这个函数接收两个参数,一个是someFunction,一个是someArgument 。someArgument也是作为someFunction的函数。

不过我们要注意someFunction没有加( );

没有加括号表示是函数名,是变量,是一个引用。函数名后面加了括号之后就是调用。

这个细微之处可以看出,js中规定,把一个函数作为另外一个函数的参数调用时,其实传递的是函数的引用。如果给写成了这样someFunction( )就不是引用了,而是调用。

( ╯□╰ )小白也是挺蒙的,既然函数有返回值,为什么不能把函数的调用看作是返回值。然后把返回值的传递看作是值传递,这应该与硬件的内部机制有关。

$("button:eq(2)").click(1111, data(e))和$("button:eq(2)").click(1111, data)的区别在于: 

data(e)这样是函数的调用。data是函数的引用。


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

油金哇卡呀酷咧 提问者

谢谢了 大兄弟
2016-10-17 回复 有任何疑惑可以回复我~

能具体点不 大神

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

Amanresor3327988

$('button').get(2) $('button').filter(2)
2016-10-05 回复 有任何疑惑可以回复我~
#2

油金哇卡呀酷咧 提问者 回复 Amanresor3327988

不是特别懂 可能是我没讲清楚 之前的代码是 $("button:eq(2)").click(1111, data) date不是引用之前的data(e)函数吗. 现在我改成 $("button:eq(2)").click(1111, data(e)) 能直接调用data(e)函数吗?
2016-10-05 回复 有任何疑惑可以回复我~
#3

qq_miaomiaodoub_0 回复 油金哇卡呀酷咧 提问者

data是一个函数,e是它的参数,获取的是事件传递过来的,直接调用就是data,data(e)没有这种写法,要么直接把那个函数包含进来
2016-10-06 回复 有任何疑惑可以回复我~
#4

qq_miaomiaodoub_0 回复 油金哇卡呀酷咧 提问者

就是data(e)应该是function data(e){alert(e.data);}
2016-10-06 回复 有任何疑惑可以回复我~
#5

油金哇卡呀酷咧 提问者 回复 qq_miaomiaodoub_0

谢谢了 o(* ̄▽ ̄*)ブ
2016-10-07 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

关于最后.click(1111,data);

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