删除用户单击的图像
Removing images that a user has clicked on
我正在开发一个内存匹配游戏。我有一些代码可以检查用户单击的两个图像是否具有相同的来源,如果它们具有相同的来源,则删除这些图像。
(function compareClicked() {
var lastclicked = "";
$("img").click(function() {
var path = $(this).attr("src");
if( lastclicked == path) {
$('img').hide(1000, function () {
$(this).remove();
});
}
else {
if( lastclicked != "") alert("Not a match");
}
lastclicked = path;
});
})();
但是,如您所见,当它们具有相同的来源时,它会删除页面上的所有图像 - 即使用户没有单击任何图像。如何更改它,使其仅删除用户单击的两个图像?
var lastclicked = "";
$("img").click(function() {
var path = $(this).attr("src"); // or this.src
if (lastclicked == path) {
$(this).hide(1000, function() {
// remove image with same src as lastClicked
$('img[src="' + lastclicked + '"]').remove();
});
} else {
if (lastclicked != "") alert("Not a match");
}
lastclicked = path;
});
演示
像这样的东西怎么样
var lastEl = null;
$(document).ready(function(){
$('img').each(function(index){
$(this).attr('id','img-' + index);
});
$('img').click(function(){
if( lastEl ) {
if( ($(this).attr('src') == lastEl.attr('src')) && ($(this).attr('id') != lastEl.attr('id')) ) {
$(this).remove();
lastEl.remove();
}
lastEl = null;
} else {
lastEl = $(this);
}
});
});
还没有测试过,但它必须非常接近
编辑:根据下面的对话更新了代码。JS小提琴在这里 http://jsfiddle.net/joevallender/pc3Qa/3/
再次编辑:JS小提琴链接现在应该是正确的
如果你多次(超过两次)同一个 Src,我真的建议你tag
你点击的图像,知道应该隐藏哪一个。如前所述,您可以使用attr
或特殊class
来实现此目的。
相关文章:
- 使图像在单击时展开到不大于浏览器
- 复制图像路径以单击它
- 旋转和取消旋转图像单击与 javascript
- 如何在 HTML 中的图像单击上播放声音
- 在“JQuery 模式”对话框中指定图像单击侦听器
- 在图像单击时触发Brightcove视频播放,并在视频完成后将其隐藏
- 在图像单击时更改正文加载
- 在图像单击时启用 Javascript 功能
- 为什么更改图像单击在PC上不起作用
- 在页面加载时运行 Jquery 函数,而不是在图像单击时运行
- jQuery 旋转函数 - 在图像单击时指定 20% 的旋转
- Jquery 中环绕图像单击事件的链接
- jquery 'change' 事件在表单中的按钮集的图像单击时未触发
- 打开Javascript交换图像.单击
- JQuery赢得't调用图像单击
- JQuery图像单击事件不起作用
- 旋转图像单击Javascript
- 在jquery中输入类型图像单击事件
- 在没有回发的情况下打开图像单击事件中的对话框
- 更改图像单击时下拉选择的值