JavaScript中索引和数据的区别?

JavaScript中索引和数据的区别?,javascript,jquery,if-statement,events,indexing,Javascript,Jquery,If Statement,Events,Indexing,要知道正在发生什么事情有点困难event.data.x方法 你能告诉我这个代码下面的event.data.x到底指的是什么吗 除了这个函数(事件)部分之外,我基本上理解了代码的工作原理,比如函数结构、参数和方法 是否是具有名为事件的参数的函数数 如果你能用简单的词来解释,那就太好了 另外:Jquery的索引和数据有什么区别吗 $(文档).ready(函数(){ $(“p”)。每个(功能(i){ $(此)。在(“单击”{ x:我 },功能(事件){ 警报(“该“+$(this.index()+”

要知道正在发生什么事情有点困难
event.data.x
方法

你能告诉我这个代码下面的event.data.x到底指的是什么吗

除了这个
函数(事件)
部分之外,我基本上理解了代码的工作原理,比如函数结构、参数和方法

是否是具有名为
事件
的参数的函数数

如果你能用简单的词来解释,那就太好了

另外:Jquery的索引和数据有什么区别吗

$(文档).ready(函数(){
$(“p”)。每个(功能(i){
$(此)。在(“单击”{
x:我
},功能(事件){
警报(“该“+$(this.index()+”。段落有数据:“+event.data.x”);
});
});
});
这是一段

这是另一段

这是另一段

$(this).index()
返回您在其容器元素中单击的元素的索引

event.data.x
包含与事件侦听器附加到的元素相对应的
.each()
循环中的
i

在本例中,它们是相同的,因为
元素是容器的唯一子元素。但是如果你稍微修改一下这个例子,你就会看到不同之处

$(文档).ready(函数(){
$(“p”)。每个(功能(i){
$(此)。在(“单击”{
x:我
},功能(事件){
警报(“该“+$(this.index()+”。段落有数据:“+event.data.x”);
});
});
});
这是一段

这是一个div 这是另一段

这是另一段

这是一段更深的话


事件。数据
是此行的第二个参数:

$(this).on(“单击”{x:i},函数(事件){

这就是您声明eventHandler的方式,简单地说,就是告诉人们当有人单击任何
..

元素时该做什么,因此最后一个参数是单击发生时将运行的函数

当浏览器检测到单击时,它将运行此功能,其中包含有关刚刚发生的事件的一些数据,一个对象,在您调用事件的示例中,您可以在此处查看此对象还包含哪些内容:

更多信息 您不必将其称为事件,您可以将其称为任何名称,例如:

$(this).on("click", {
  x: i
}, function(potato) {
  console.log(potato.data) // {x:#}
});
如果不需要使用数据,可以省略第二个参数

$(this).on("click", function(event) {
  console.log(event.data) // undefined
});
关于index与data.x,不同之处在于each函数给您一个从0开始的索引参数,元素的index()函数可能会给您一个

$("p").each(function(i) {
  $(this).on("click", {
    x: i
  }, function(event) {
    console.log(event.data.x) // 0...1...2...3 depending on where you clicked
    console.log($(this).index()) // 1...2...3...4 depending on where you clicked
  });
});

event.data.x
是从
each()中为
单击
事件提供的值
loop,因此它是所选
p
元素集合中元素的索引。
在Jquery上的索引和数据之间是否有任何差异
是。
事件.data.x
将是所选
p
集合中的索引。
$(this).index()
将是当前元素在其父元素中的索引。根据您的HTML示例,数字将是相同的。将任何元素放在DOM中的第一位,它们将不会是相同的。@Rorymcrossan感谢您的详细回答。:>感谢您提供的详细信息:))哇,太多的详细信息不太可能出现在我的本地论坛上。谢谢大家!!