我对JQuery相当陌生,我想知道.on()函数。例如:
$('div').on('click', function() {$(this).toggleClass('show-description');});第一段代码是选择HTML文件中的所有'div‘元素,并侦听一个单击事件。然后,它将切换我的“显示-描述”类“打开”和“关闭”为我最后点击的div。
<div class="show-description"> ......</div>如果我只想指定在div标记中定义的特定类来侦听我的事件,该怎么办?
我试过:
$('div.about').on('click', function() {$(this).toggleClass('show-description');});我在HTML中定义了:
<body>
<div class="clearfix">
<div class="column">
<ul>
<li id='about'> <span>About Me</span> </li>
......
</div>
</div>然而,我没有激活我的“展示-描述”声明。我已经试过阅读API .on()方法,也看过Stack,似乎找不到任何帮助。,我不是在找直接的答案,,只是在正确的方向上推。。
谢谢。
发布于 2016-12-29 01:12:44
$('div.about')将选择具有about类的所有div元素。在您的示例中,没有一个div元素具有该类。
示例中唯一的about是一个id (它不是一个类),它位于li元素中。
你可能想要这个:$('li#about').on('click', ...
请检查以下代码段:
$('div.about').on('click', function() {$(this).toggleClass('show-description');});
$('li#about').on('click', function() {$(this).toggleClass('show-description');});.show-description {
border: 1px solid red;
}<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。每次单击都会将红色边框切换到单击的元素。
作为附带说明(对于上面的示例),我们可以完全相同地使用
$('div.about, li#about').on('click', ...发布于 2016-12-29 01:40:03
如果我只想指定一个我在中定义的特定类--一个div标记来侦听我的事件?
下面的示例不使用class和on函数,不过我相信您可以理解。假设您有以下HTML代码:
<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做些什么,那么您可以使用以下方法:
$( "ul.topnav li" ).css( "border", "3px double red" );但是,如果您想要对li 中的每个 ul进行操作,并直接执行ul的子级操作,那么您可以这样做:
$( "ul.topnav > li" ).css( "border", "3px double red" );对于您的具体情况,您可以这样做:
$( "div #about" ).on( ... );希望能帮上忙。
https://stackoverflow.com/questions/41371899
复制相似问题