2015-02-24 28 views
1

所以我试图将图像src添加到div当您点击它时...到目前为止我已经将它写入,并且它似乎不起作用,没有错误报告,不知道发生了什么事情。该图像是一个类.card(其中15个),我只想在边框是灰色的情况下追加到div,单击一次以选择卡(更改边框),然后再次单击以粘贴所选内容卡到div ...该div被称为.picks。我只想将图像src作为文本显示在我的页面上。感谢您的帮助。将图像src以文本形式添加到div

$(".card").click(function() { 
console.log("click"); 
if($(this).css('border')==="4px solid gray") { 
    var cardname = $(this).attr('src'); 
    $(".picks").append(cardname); 
    if(pick<15) { 
     pick++; 
    } 
    else { 
     booster++; 
     pick=1; 
    } 
} 
else { 
    $(this).css('border', '4px solid gray'); 
} 
}); 
+0

什么是'pick'? – void 2015-02-24 19:38:52

+0

这些只是程序其他部分使用的一些变量。基本上选择= 1,助推器= 1. – 2015-02-24 19:40:27

+0

你可以发布你的代码jsfiddle吗? – void 2015-02-24 19:43:02

回答

3

的问题是,你靠的css("border")结果,而不是你所期望的:例如Chrome将以"4px solid rgb(128, 128, 128)"的格式检索边框样式。

相反设置CSS类selected并检查卡上有这个类或不:

$(".card").click(function() { 
    if ($(this).hasClass('selected')) { 
     var cardname = $(this).attr('src'); 
     $(".picks").append(cardname); 
     if (pick < 15) { 
      pick++; 
     } else { 
      booster++; 
      pick = 1; 
     } 
    } else { 
     $(this).addClass('selected'); 
    } 
}); 

演示:http://jsfiddle.net/1o7tgs5j/13/

一般作为经验法则,避免使用造型$.fn.css方法,不仅这是非常突兀的,而且也是容易出错的方法。在大多数情况下,addClass/removeClass的使用带来了更多的灵活性。

1

您应该使用

if($(this).css('border')==="4px solid rgb(128, 128, 128)") 
{ 
    .... 
} 

但我会建议你做这样...

$(".card").click(function() { 
    console.log("click"); 
    if ($(this).hasClass("clicked")) { 
     var cardname = $(this).attr('src'); 
     $(".picks").append(cardname); 
     if (pick < 15) { 
      pick++; 
     } else { 
      booster++; 
      pick = 1; 
     } 
    } else { 
     $(this).css('border', '4px solid gray').addClass("clicked"); 
    } 
}); 

工作Fiddle

+0

虽然这个anwser是正确的,dfsq在你之前张贴了正确的anwser,所以我要接受他的版本。感谢您的帮助 – 2015-02-24 20:42:43

+0

酷,因为它是正确的,你可以投票。 – void 2015-02-24 20:45:02