我试图编写一个网站,其目标是点击两个相同的图像,它隐藏了你设法匹配的两个图像。
$(document).ready(function(){
var animal1;
var animal2;
$(".memory1").on("click", function(){
animal1 = $(this).data('animal');
});
$(".memory2").on("click", function(){
animal2 = $(this).data('animal');
if (animal1==animal2){
$(this).data('animal').hide();
}
else {
alert("Wrong, Try again!");
}
});
});
所以它出错的地方显然是
$(this).data('animal').hide();
但是我无法想出隐藏这两种图像的方法,或者更好的方法来实现它......:/
答案 0 :(得分:1)
这并不像你认为的那样工作
$(this).data('animal').hide();
当data
与一个参数一起使用时,它会获得数据属性,您应该已经知道,因为您已经在上面几行进行了操作。
你得到的是字符串hund
等,而且该字符串没有hide()
方法。
您应该使用属性选择器来选择具有该属性的元素
$(document).ready(function () {
var animal1, animal2;
$(".memory1").on("click", function () {
animal1 = $(this).data('animal');
});
$(".memory2").on("click", function () {
animal2 = $(this).data('animal');
if (animal1 == animal2) {
$('img[data-animal="'+animal1+'"]').hide();
} else {
alert("Fel! Försök igen");
}
});
});