javascript - JQuery 回调工作

标签 javascript jquery

我刚刚开始从 w3schools 学习 JQuery .. 我只想学习基本语法。 我对 this piece of code 有点困惑:

$(document).ready(function(){
var i=0;
    $("#btn1").click(function()
    {
        $("#test1").text(function(a, origText)
        {
            i = (parseInt(i)+1);
            return "Old text: " + origText + " New text: Hello world! (index: " + i + ")";
        });
    });
});

我了解 javascript 中回调的用法,但我不明白它在这里是如何工作的。

这个函数(a, origText ) 其中 a = 我认为这是索引..但它始终为 0 origText = 元素“test1”中的当前原始文本 我还没有声明任何这样的函数。我不确定它是否在“jquery-2.0.3.js”文件中可用。

我无法理解为什么当我第一次单击 btn1 时,origText 包含 test1 元素的当前值?

我知道这可能是一个非常愚蠢的问题..但我尝试用我的头脑并不能安静地理解。我唯一的猜测是它是我正在使用的 jquery-2.0.3.js 文件中的预定义函数,但我只是想确定一下。

提前致谢:)

更新: 我保证在这之后我不会再使用 w3schools 的任何引用文献.. 我很着急.. 只是想让自己熟悉语法,所以正在查看示例。不懂这个所以问。

最佳答案

.text() 的文档中可以看出jQuery 的方法,当匿名函数作为参数传递给该方法时,匿名函数会传递两个参数,第一个是调用该方法的元素集中元素的索引,第二个是相关元素的原始文本内容。

无论这个匿名函数返回什么,jQuery 都会使用它来设置相关元素的文本内容。

Here is a small demo demonstrating this .

关于javascript - JQuery 回调工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042481/

相关文章:

javascript - 检查计算岛屿的异常情况

javascript - wp_head();崩溃的 apache (xampp)

javascript - 用 <br/> 替换日期上的空格

javascript - 根据选择框值添加多个输入框

JavaScript:需要较低的 div(在绝对 div 下)而不是滚动

javascript - jQuery Datepicker 输出格式化日期减去 1 个月

Javascript 目标仅被点击的元素

javascript - 范围的每 2 个分区循环 2

jquery - Chrome "unable to load"图像作为 CSS 'background' - 然后它归咎于 jquery

javascript - 将内容加载到从中加载内容的 DIV 标签中