[英]Toggle image not working in jquery
what i need 我需要的
html html
<span itemprop="location" itemscope itemtype="http://schema.org/Place">
<div style="display:block; float:right; width:auto; color:#7c7c7c;">
<a href="javascript:void(0);" src="http://im.gifbt.com/images/star1_phone.png" class="favourate_dextop" id="fav'.$data[$k]['id'].'" onClick=" favaorite(this)"></a>
</div>'
js code js代码
function favorite(pointer)
{
$(".favourate_dextop").click(function(){
if($(".favourate_dextop").attr("src") == "http://im.gifbt.com/images/star1_phone.png"){
//$(pointer).closest('.evt_date').find('.favourate_dextop').attr("src", "http://im.gifbt.com/images/star1_phonehover.png");
$(pointer).closest('.evt_date').find('.favourate_dextop').css('background-image', 'url("' + imageUrl + '")');
alert("if");
}
else
{
//$(pointer).closest('.evt_date').find('.favourate_dextop').attr("src", "http://im.gifbt.com/images/star1_phone.png");
$(pointer).closest('.evt_date').find('.favourate_dextop').css('background-image', 'url("' + imageUrls + '")');
}
});
}
problem 问题
problem im facing i searched google though i found toggleclass though its not working in case. 我面临的问题是我搜索了google,尽管我发现toggleclass却无法正常工作。
i found helpfull code 我发现有用的代码
// in CSS .favourate_dextop{ background: url("http://im.gifbt.com/images/star1_phone.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0); display: block; float: right; height: 19px; width: 18px; } .favourate_dextop:hover{ background: url("http://im.gifbt.com/images/star1_phonehover.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);} .favourate_dextops{ background: url("http://im.gifbt.com/images/star1_phone.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0); display: block; float: right; height: 19px; width: 18px; } .favourate_dextops:hover{ background: url("http://im.gifbt.com/images/star1_phonehover.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);} // in JS // based on value of imageUrl, determine what class to remove and what class to add. $(pointer).closest('.evt_date').find('.favourate_dextop').removeClass('favourate_dextop').addClass('favourate_dextops');
this code is also not working. 此代码也不起作用。
only this code works onetime when click on image changes background image only once, nut i need to toggle image urls. 仅此代码一次有效,当单击图像仅更改背景图像一次时,我需要切换图像URL。
updated code 更新的代码
<div class="evt_date" style="overflow:hidden" style="overflow:hidden" itemscope itemtype="http://schema.org/Event">
<a href="javascript:void(0);" class="favourate_dextop" id="fav'.$data[$k]['id'].'" onClick=" favaorite('.$data[$k]['id'].',\''.$name_event.'\',\''.$event_city.'\',\''.$event_country.'\',\''.$event_urls.'\',this)"></a>
js code js代码
var image2='http://im.gifbt.com/images/star1_phonehover.png';
var image1='http://im.gifbt.com/images/star1_phone.png';
var toggle = 1;
$('.favourate_dextop').click(function(){
if (toggle == 1)
{
alert("toggle 1");
$('.favourate_dextop').css('background-image', 'url("' + image2 + '")');
//$("#bg").attr('src',image2);
toggle = 0;
}
else {
alert("toggle 0");
$('.favourate_dextop').find('.favourate_dextop').css('background-image', 'url("' + image1 + '")');
//$("#bg").attr('src',image1);
toggle = 1;
}
}); });
problem im facing: 我面临的问题:
js fiddle: i have updted my fiddle : some changes : http://jsfiddle.net/48Lq3u60/20/ js小提琴:我更新了小提琴:一些更改: http : //jsfiddle.net/48Lq3u60/20/
Your best bet is to simplify things a bit. 最好的选择是简化一些操作。 Try something like this:
尝试这样的事情:
HTML (not that your span is now a div...you shouldn't have spans wrapped around divs as that is bad syntax): HTML(不是您的span现在是一个div ...您应该不要在div周围包裹span,因为这是错误的语法):
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<div class="img-wrap img1">
<div class="img-swap"></div>
</div>
</div>
CSS: CSS:
.img-wrap {
display: block;
float: right;
width: auto;
color: #7c7c7c;
}
.img-swap {
float: left;
width: ENTER WIDTH OF IMAGE;
height: ENTER HEIGHT OF IMAGE;
background-position: 0 0;
background-repeat: no-repeat;
}
.img-swap.img1 {
background-image: url('pathtoimage1');
}
.img-swap.img2 {
background-image: url('pathtoimage2');
}
jQuery: jQuery的:
jQuery('.img-wrap').click(function() {
jQuery(this).children('.img-swap').toggleClass('img1 img2');
});
You'll need to swap out the image paths and enter height and width for your container, but this probably a simpler approach and a bit cleaner. 您需要换出图像路径并为容器输入高度和宽度,但这可能是一种更简单的方法,并且更干净。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.