<div contenteditable="true" class="dropZone"></div>
<div class="imageHolder">
<div class="droppedImage"></div>
</div>
我有上面的html。页面上可能有一些“dropZone”div。但是每个都具有以下事件绑定:
$('#lightbox').find('.dropZone').each(function(){
$(this).mouseover(function(){
// check the asset is an image
if( $(this).find('img').length > 0 ){
var src = $(this).find('img').first().attr('src'),
masterTestVal = 'mydomain';
$(this).empty();
// check the asset is from the image bin
if(src.search(masterTestVal) > 0){
var that = $(this).siblings('.imageHolder').find('.droppedImage'),
img = '<img src="'+src+'"/>';
that.html(img);
} else {
alert('Only images from your image bin are accepted here.');
}
} else {
if($(this).html().length > 0){
alert('Only images from your image bin are accepted here.');
$(this).empty();
}
}
});
});
这个想法很简单,用户可以从他们的“图像箱”中拖放一个图像,另一个加载在页面上的 div 填充了一些预加载的图像。当用户将图像拖到“放置区”div 上时,上面的 js 会启动,如果该图像来自我的域,则该图像将被复制到“droppedImage”div 中。
这工作得很好,但在 chrome 和 safari 中,用户只能执行一次此操作。在firefix中我可以无休止地重复这个动作。但是在 chome 和 safari 中似乎一滴之后 attr contenteditable 就丢失了还是什么?
有没有人有任何想法?
谢谢,约翰
js 小提琴 - http://jsfiddle.net/n6EgH/1/