首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery ('div').on函数标签选择

问Jquery ('div').on函数标签选择
EN

Stack Overflow用户
提问于 2016-12-29 01:10:31
回答 2查看 93关注 0票数 3

我对JQuery相当陌生,我想知道.on()函数。例如:

代码语言:javascript
复制
$('div').on('click', function() {$(this).toggleClass('show-description');});

第一段代码是选择HTML文件中的所有'div‘元素,并侦听一个单击事件。然后,它将切换我的“显示-描述”类“打开”和“关闭”为我最后点击的div。

代码语言:javascript
复制
<div class="show-description"> ......</div>

如果我只想指定在div标记中定义的特定类来侦听我的事件,该怎么办?

我试过:

代码语言:javascript
复制
$('div.about').on('click', function() {$(this).toggleClass('show-description');});

我在HTML中定义了:

代码语言:javascript
复制
<body>
 <div class="clearfix"> 
  <div class="column">
    <ul>
     <li id='about'> <span>About Me</span> </li>
      ......
   </div>
 </div>

然而,我没有激活我的“展示-描述”声明。我已经试过阅读API .on()方法,也看过Stack,似乎找不到任何帮助。,我不是在找直接的答案,,只是在正确的方向上推。。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-29 01:12:44

$('div.about')将选择具有about类的所有div元素。在您的示例中,没有一个div元素具有该类。

示例中唯一的about是一个id (它不是一个类),它位于li元素中。

你可能想要这个:$('li#about').on('click', ...

请检查以下代码段:

​

代码语言:javascript
复制
$('div.about').on('click', function() {$(this).toggleClass('show-description');});


$('li#about').on('click', function() {$(this).toggleClass('show-description');});
代码语言:javascript
复制
.show-description {
  border: 1px solid red;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clearfix"> 
  <div class="column">
    <ul>
      <li id='about'> <span>About Me</span> </li>
    </ul>
  </div>
  <div class="about">This div has the "about" class</div>
</div>

​

在上面的示例中,您可以看到有两个元素可以单击-- li#about和div.about。每次单击都会将红色边框切换到单击的元素。

作为附带说明(对于上面的示例),我们可以完全相同地使用

代码语言:javascript
复制
$('div.about, li#about').on('click', ...
票数 2
EN

Stack Overflow用户

发布于 2016-12-29 01:40:03

如果我只想指定一个我在中定义的特定类--一个div标记来侦听我的事件?

下面的示例不使用class和on函数,不过我相信您可以理解。假设您有以下HTML代码:

代码语言:javascript
复制
<ul class="topnav">
  <li>Item 1</li>
  <li>Item 2
    <ul>
    <li>Nested item 1</li>
    <li>Nested item 2</li>
    <li>Nested item 3</li>
    </ul>
  </li>
  <li>Item 3</li>
</ul>

如果您想要对li 中的每个 ul做些什么,那么您可以使用以下方法:

代码语言:javascript
复制
$( "ul.topnav li" ).css( "border", "3px double red" );

但是,如果您想要对li 中的每个 ul进行操作,并直接执行ul的子级操作,那么您可以这样做:

代码语言:javascript
复制
$( "ul.topnav > li" ).css( "border", "3px double red" );

对于您的具体情况,您可以这样做:

代码语言:javascript
复制
$( "div #about" ).on( ... );

希望能帮上忙。

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

https://stackoverflow.com/questions/41371899

复制
相关文章

相似问题

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