首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery,动态访问动态目标

jQuery,动态访问动态目标
EN

Stack Overflow用户
提问于 2016-01-06 08:16:48
回答 2查看 29关注 0票数 0

在使用动态选择器时,如何访问动态目标?

因为$(this)在绑定函数中给出了父元素。我需要让每个元素本身动态地获取相应的data-attributes

Fiddle: https://jsfiddle.net/u1kuufj7/1/

HTML:

代码语言:javascript
复制
<div id="container">
  <div id="1" class="ch">Click</div><br>
  <div id="2" class="ch">Click</div><br>
  <div id="3" class="ch">Click</div><br>
  <div id="4" class="ch">Click</div><br>
  <div id="5" class="ch">Click</div><br>
</div>

Javascript:

代码语言:javascript
复制
var $container = $('#container');
var $chs = $('.ch');

$container.on('click', $chs, function() {
    alert($(this).attr('id'));
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-06 08:19:45

要使用事件委托,on的第二个参数应该是选择器(字符串),而不是jQuery对象:

代码语言:javascript
复制
var $container = $('#container');
var $chs = '.ch';                   // <== Changed

$container.on('click', $chs, function() {
    alert($(this).attr('id'));
});

现在,this将引用被单击的.ch

实况示例:

代码语言:javascript
复制
var $container = $('#container');
var $chs = '.ch';

$container.on('click', $chs, function() {
    alert($(this).attr('id'));
});
代码语言:javascript
复制
<div id="container">
  <div id="1" class="ch">Click</div><br>
  <div id="2" class="ch">Click</div><br>
  <div id="3" class="ch">Click</div><br>
  <div id="4" class="ch">Click</div><br>
  <div id="5" class="ch">Click</div><br>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

附带注意:$(this).attr("id")只是编写this.id的一条很长的路。

边注2:虽然以数字开头的id值是完全有效的,但是在CSS中使用它们很尴尬,因为ID选择器不能以文字数字开头。(可以通过转义或属性选择器来绕过它,但这是很尴尬的。)因此,我通常避免以数字开头的id

票数 1
EN

Stack Overflow用户

发布于 2016-01-06 08:19:55

使用,您正在将一个jQuery对象传递给.on()

代码语言:javascript
复制
var $container = $('#container');
$container.on('click', '.ch', function() {
    alert($(this).attr('id'));
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div id="container">
  <div id="1" class="ch">Click</div><br>
  <div id="2" class="ch">Click</div><br>
  <div id="3" class="ch">Click</div><br>
  <div id="4" class="ch">Click</div><br>
  <div id="5" class="ch">Click</div><br>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34628458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档