onClick addClass到您单击的图像

时间:2013-04-28 20:13:53

标签: jquery

我从数据库中将一系列图像拉到我的页面上。当有人点击一个时,我需要添加某种风格。该样式仅适用于您当前单击的图像,而不适用于其他图像。我的脚本突出显示您单击的每个图像。任何想法如何解决?

PHP(当我拉这些图片时)

$war_list .= '
<span name="fighter">
    <label for="'.$value["fighter_id"].'">
        <img src="'.$value["fighter_photo"].'" id="fighter-icon" title="'.$value["fighter_full_name"].'">
    </label> <input type="radio" value="'.$value["fighter_id"].'" id="'.$value["fighter_id"].'" name="list">
</span>';

Jquery的

$("span[name=fighter]").click(function() {
    var something = $(this).val();
    $(this).find("img").addClass('red');
    alert(something);   
});

在坚果壳中我试图这样做:当你点击一个图像时,它需要添加一个类。当您单击另一个图像时,它将删除单击的最后一个图像的类,并将其添加到您当前单击的图像。

3 个答案:

答案 0 :(得分:0)

试试这个:

$('img').click(function() {
    if('img').hasClass('yourclass') {
        $(this).removeClass('yourclass');
    }
    $(this).addClass('yourclass')
})

或者如果您想要特定图像,请为每个图像添加一个类:

 <img class="this_image" src="'.$value["fighter_photo"].'" id="fighter-icon" title="'.$value["fighter_full_name"].'">

$('img.this_image').click(function() {
    if('img.this_image').hasClass('yourclass') {
        $(this).removeClass('yourclass');
    }
    $(this).addClass('yourclass')
})

答案 1 :(得分:0)

尝试

$("span[name=fighter] img").click(function() {
$("span[name=fighter] img").removeClass('red'); // This removes the existing class
    var something = $(this).parent().parent().val();
    $(this).addClass('red');
    alert(something);   
});

答案 2 :(得分:0)

Check this JSfiddle您的问题的答案: 您只需将锚点切换到图像标记即可。

HTML代码:

<span name="fighter">
    <a>Link 1</a>
</span>
<span name="fighter">
    <a>Link 2</a>
</span>
<span name="fighter">
    <a>Link 3</a>
</span>
<span name="fighter">
    <a>Link 4</a>
</span>

jQuery代码:

var myspan = $("span[name=fighter]").click(function(){
    myspan.find('a').removeClass('red');
    $(this).find('a').first().addClass('red');
});

<强> CSS:

span a{
    color: blue;
}
.red{
    color:red;
}