- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个必须要做的作业,它与一棵圣诞树有关,你可以点击 Twig 并将它们变成装饰品之类的。当树长成后,您不应该能够更换装饰品。到目前为止我已经得到了这个jquery:
$('.branch1, .ornament1, .light1').click(function()
{
alert("WARNING - Power off the tree first!");
die();
});
$('.branch, .ornament, .light').click(function()
{
this.className =
{
light : 'branch', branch: 'ornament', ornament: 'light'
}[this.className];
});
$('#treePowerButton').click(function()
{
$(".branch, .branch1").toggleClass("branch branch1");
$(".ornament, .ornament1").toggleClass("ornament ornament1");
$(".light, .light1").toggleClass("light light1");
$(".powerStatus, .powerStatus1").toggleClass("powerStatus powerStatus1");
});
$('#treeClearButton').click(function()
{
$(".ornament").toggleClass("ornament branch");
$(".light").toggleClass("light branch");
});
但是当我打开树并单击 Twig 或装饰品时,它不会发出警报,它只会使单击的项目完全消失。我做错了什么?
这是一个jsfiddle:http://jsfiddle.net/a1smjgrv/
最佳答案
试试这个jsfiddle:http://jsfiddle.net/a1smjgrv/5/ 。它将实现您正在寻找的内容,并且比尝试在同一元素上绑定(bind)多个点击事件要简单得多。
<小时/>问题是,当页面加载时,页面上没有任何“branch1”、“ornament1”或“light1”元素,因此包含alert()的点击事件未绑定(bind)到任何内容。页面上只有“分支”元素,因此只绑定(bind)分支的点击事件。
当树启动并且“branch”元素更改为“branch1”类时,包含 className 更新的单击事件仍附加到该元素。因此,当它尝试根据对象字面量({light: 'branch'、branch: 'ornament' 等...})更新类名时,它无法找到其中任何一个的匹配项,因为类给定元素的名称现在是“branch1”而不是“branch”,因此它将元素上的类名称设置为“未定义”(因此消失)。
如果您希望在元素呈现到页面的任何时间点将函数绑定(bind)到元素,则需要在文档级别绑定(bind)它。类似于以下内容:
$(document).on('click', 'branch1', function() {
alert('SHAZAM!');
});
关于javascript - jquery 对类更改没有反应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220506/
我正在尝试将高斯模糊添加到场景中。我正在使用此GLSL着色器:。当您提供图像作为tDiffuse纹理时,它对图像起作用,但我正在尝试将其添加为后处理效果。我试图获取摄影机的renderTarget并将
我正在做一款天气应用程序,到目前为止还不错。现在,我想通过单击按钮来呈现一些额外的信息。我有一个5天的预报,然后想显示每一天的信息。我已经成功地过滤了数据,但无法获得要渲染的数据地图。以下是我的一些代
我正在做一款天气应用程序,到目前为止还不错。现在,我想通过单击按钮来呈现一些额外的信息。我有一个5天的预报,然后想显示每一天的信息。我已经成功地过滤了数据,但无法获得要渲染的数据地图。以下是我的一些代
我在全球安装了Create Reaction应用程序。然后我就跑了。NPX创建-反应-应用JSX。它安装了大约1460个包的所有包,但没有设置Public和src文件夹。在我的JSX文件夹中,只有1:
我是一名优秀的程序员,十分优秀!