我正在制作可排序和可调整大小的图像相册。在那里,我试图添加一个功能来创建图像作为链接。如何检查是否点击了相同图像或其他图像或图像以外的其他图像
图像被点击
然后包裹该图像与显示在该图像的顶部上的编辑按钮一个div。
- 当点击编辑按钮时,将出现一个对话框,输入该图像的URL和名称。
- 然后用给定的url和名称包装
a tag
的图像。
演示在jsfiddle
这是确定。但我想要做的是:
- 如果单击相同的图像不要再次包装编辑div。
- 仅当单击新图像时才包装编辑格。
- 如果点击了图像以外的其他东西,请删除编辑div。
我该如何做到这一点?我认为unwrap()会从图像中删除编辑div的窍门,但我怎么知道它是否是相同的图像,或者除此之外的东西?
JS片段:
$('#sortable li img').on("click", function() {
$image = $(this);
image_resize($image);
edit_image($image);
});
function edit_image(image) {
image.wrap('<div id="edit-image"></div>');
$('#edit-image').prepend('<a href="#">EDIT</a>');
$("#edit-image a").center(true).css("cursor", "pointer").css("z-index", "1");
$('#edit-image a').on("click", function() {
alert("clicked on edit");
if (image.parent().is("a")) {
var img_link = image.parent().attr("href");
var img_name = image.parent().attr("alt");
$('#image_link_dialog #input #link').val(img_link);
$('#image_link_dialog #input #name').val(img_name);
}
$('#image_link_dialog').css("display", "block").css("z-index", "2");
$('#image_link_dialog').center(false);
$('#image_link_dialog').draggable();
});
$('#image_link_dialog .dialog_handle a').on("click", function() {
if (!$('#image_link_dialog #input #name').val() == '') {
var img_name = $('#image_link_dialog #input #name').val();
console.log('img_name: ' + img_name);
}
if (!$('#image_link_dialog #input #link').val() == '') {
var img_link = $('#image_link_dialog #input #link').val();
console.log('img_link: ' + img_link);
if (img_name) {
if (image.parent().is("a")) {
image.parent().attr("alt", img_name);
image.parent().attr("href", img_link);
} else {
image.wrap(function() {
return "<a class='img_a' href='" + img_link + "' alt='" + img_name + "'></a>";
});
}
} else {
if (image.parent().is("a")) {
image.parent().attr("href", img_link);
} else {
image.wrap(function() {
return "<a class='img_a' href='" + img_link + "'></a>";
})
}
}
} else {
alert('please enter link url');
}
$('#image_link_dialog #input #link').val('');
$('#image_link_dialog #input #name').val('');
$('#image_link_dialog').css("display", "none");
})
}
只是分配一个属性,你可以检查 – WhiteHat
@WhiteHat喜欢?什么属性? –
@TikliTaba只需添加类似于“包裹”或“编辑模式”的类或属性并在点击处理函数中检查。如果您添加的属性或类可用,则不要换行。 – Araknid