javascript-2个jQuery绑定之间的区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-2个jQuery绑定之间的区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1364字,纯文字阅读大概需要2分钟。
内容图文
![javascript-2个jQuery绑定之间的区别](/upload/InfoBanner/zyjiaocheng/688/6a069681f06c41b28935ca03a127ae49.jpg)
function runSomething () {
// some stuff happens
}
$(selector).bind('event', runSomething());
$(selector).bind('event', runSomething);
这两个绑定版本之间有什么区别?
这是一个实际的例子:
http://jsbin.com/icajo/edit
有人可以解释为什么以这种方式起作用.
我试图让多个按钮在事件上运行该功能,我该怎么办?
解决方法:
在javascript中,将一组参数传递给函数会调用该函数,然后将其评估为函数的返回值.
var test = function() { return 1; } // Creates a new function that returns 1
alert(test.toString()); // => "function () { return 1; }"
alert(test().toString()); // => "1"
甚至警报本身也只是指向函数的变量.
alert(alert); // => "function alert() { [native code] }"
因此,如果第一个示例在调用runSomething()时立即评估该函数,然后将返回值作为参数传递给bind().在您的情况下,它会在页面加载时评估alert(),然后将undefined传递给bind()
在第二个示例中,使用变量runSomething将函数本身传递给bind().然后,绑定仅在引发事件时才使用该功能.
为了真正让您大吃一惊,您可以让函数返回一个函数,然后评估该函数(如您的第一个示例一样)是正确的……例如
var counter = 0;
function GenerateNext() {
counter++;
return new Function("alert(" + counter + ")");
}
a = GenerateNext();
b = GenerateNext();
b() // will alert 2
a() // will alert 1
$(selector).bind('event', GenerateNext()); // alert 3
$(selector).bind('event', a); // alert 1
$(selector).bind('event', b); // alert 2
这完全取决于您要做什么.传递函数本身,或传递函数的返回值.
内容总结
以上是互联网集市为您收集整理的javascript-2个jQuery绑定之间的区别全部内容,希望文章能够帮你解决javascript-2个jQuery绑定之间的区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。