单击更改图标并通过javascript添加一个css类
Change Icon on click and add a css class through javascript
我正在尝试制作一个可扩展的h3。为此,我将有一个"加号"图像要点击,当它被点击时,必须更改为"减号"图像,我需要在h3中添加一个css类来显示内容。我将粘贴以下所有代码:
<div class="default">
[ManageBlog]
<div class="msearch-result" id="LBSearchResult[moduleid]" style="display: none">
</div>
<div class="head">
<h1 class="blogname">
[BlogName] <img src="/portals/40/Images/Train_Fitness_2015_S/images/plus_symbol.png" alt="Plus Button" id="ExpandBlogDescriptionImg"></h1> [RssFeeds]
<br style="line-height: 12px; clear: both" />
<h3 class="blogdescription">
[BlogDescription]</h3> [Author]
</div>
<br /> [Posts] [Pager]
</div>
<div style="clear: both"></div>
这是javascript:
jQuery(document).ready(function() {
$("#ExpandBlogDescriptionImg").click(function() {
var right = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/plus_symbol.png";
var left = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/minus_symbol.png";
element.src = element.bln ? right : left;
element.bln = !element.bln;
});
var img = $("#ExpandBlogDescriptionImg");
if (img.src = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/minus_symbol.png") {
$('.blogdescription').addClass("ExpandBlogDescriptionText");
} else {
$('.blogdescription').removeClass("ExpandBlogDescriptionText");
};
});
您可以使用jquery的.attr函数来设置像这样的图像源
$('.img-selector').attr('src','plusorminusimagepath.jpg');
你可以有一个布尔标志来知道它是小于还是大于
这里我在点击时更改了图像标签的alt
属性。与更改src的方式相同
jQuery(document).ready(function() {
$("#ExpandBlogDescriptionImg").click(function() {
if ($(this).attr("alt") == "+") {
$(this).attr("alt", "-");
} else {
$(this).attr("alt", "+");
}
});
var img = $("#ExpandBlogDescriptionImg");
if (img.src = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/minus_symbol.png") {
$('.blogdescription').addClass("ExpandBlogDescriptionText");
} else {
$('.blogdescription').removeClass("ExpandBlogDescriptionText");
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="default">
[ManageBlog]
<div class="msearch-result" id="LBSearchResult[moduleid]" style="display: none">
</div>
<div class="head">
<h1 class="blogname">
[BlogName] <img alt="+" src="/portals/40/Images/Train_Fitness_2015_S/images/plus_symbol.png" alt="Plus Button" id="ExpandBlogDescriptionImg"></h1> [RssFeeds]
<br style="line-height: 12px; clear: both" />
<h3 class="blogdescription">
[BlogDescription]</h3> [Author]
</div>
<br />[Posts] [Pager]
</div>
<div style="clear: both"></div>
您应该使用sprite图像和CSS,否则当您单击它时,它将加载另一个图像,在一段时间内,图像之间会消失。
HTML
<div class="head">
<h1 class="blogname">
[BlogName] <span class="plus icon"></span></h1>
[RssFeeds]
<br style="line-height: 12px; clear: both" />
<h3 class="blogdescription">
[BlogDescription]</h3>
[Author]</div>
<br />
CSS
.icon{
width:30px;
height:30px;
display:inline-block;
background-image:url(plus-minus-sprite-image.png);
}
.icon.plus{
background-position:20px center;
}
.icon.minus{
background-position:40px center;
}
JS-
$('.icon').click(function(){
$(this).toggleClass("plus minus");
if($(this).hasClass("plus")){
$('.blogdescription').addClass("ExpandBlogDescriptionText");
}else{
$('.blogdescription').removeClass("ExpandBlogDescriptionText");
}
// Or $('.blogdescription').toggleClass("ExpandBlogDescriptionText");
});
$("#ExpandBlogDescriptionImg").click( function(e){
var right = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/plus_symbol.png";
var left = "https://train.fitness/portals/40/Images/Train_Fitness_2015_S/images/minus_symbol.png";
if($(e.currentTarget).attr('img') == left){
$(this).hide();
$(e.currentTarget).attr('img',right);
}else{
$(this).show();
$(e.currentTarget).attr('img',left);
}
});
相关文章:
- 单击更改图标并通过javascript添加一个css类
- 用 LESS 伪造一个 css 属性(并在解析时用一个真实属性替换它)
- 在jquery中创建和分配一个css类
- 如何为每个html制作一个css
- I'我试图用一个按钮随意移动一个CSS元素,我试图使用偏移量,但onlick不起作用
- 创建一个CSS下拉菜单,其中包含从搜索图标弹出的搜索框
- 一种在另一个CSS值更改时更改CSS值的方法
- 在浏览器上存储一个 css 类
- 选择一个 CSS 选择器来动态设置元素的样式 ::before
- 当检测到另一个 CSS 更改时,使用 jQuery 或 MutationObserver 更改元素的 CSS
- 相对于另一个 css 元素定位一个元素,而不编辑 html
- 在 jQuery 中插入一个 CSS id
- 我创建了一个CSS切换器,但我只需要更改class=“”的元素;红色”;身体
- 使用JavaScript/jQuery从Bootstrap css中获取一个css值
- 事件侦听器,一个css转换结束,另一个开始
- 如何制作一个CSS类数组
- 在PhoneGap中只有一个CSS转换有效
- 如何将.vue文件中的所有css代码放在一个.css文件中
- 在xcode6中向UIWebView添加2个.js文件和一个.css文件
- 如何将页面上所有被屏蔽的谷歌广告(用图片)替换为第一个?CSS选择器出现问题