切换

2012-07-25 66 views
0

语境

我只想选择一个图像,并删除其他现有的图像切换

现在很多图像可以这样选择的边界:

enter image description here

我想要选择和取消选择单个图像的帮助。

我的代码

function clickpick(item) { 

    for (var i = 5; i < document.images.length; i++) { 

     document.images[i].onclick = function() { 

     if (this.style.borderWidth == '5px') { 
      selectpic = ''; 
      $("#display-frame").find("*").css("border", "0"); 
     } else { 
      this.style.border = '5px solid blue'; 
      selectpic = $(item).attr("url"); 
     } 

    }; 
} 

图像是自动生成的

的Html

<div class="mainpic"><img src="';path+=file.filepath+'" class="uploader-thumb-img" style="width: 108px; height: 120px; top: 0px; left: 0px; "/></div> 

更新: 我要选择的图像遗憾的URL忘了提,

+2

林搞不清你问这个问题?你能告诉我们你的图像的html结构吗? – Undefined 2012-07-25 11:35:22

回答

2

解决方案

使用jQuery .toggleClass()函数。

CSS

img { border: 0; } 
img.highlight { border: 5px solid blue; } 

的JavaScript

var url; 

$('img').click(function (e) { 
    $('img.highlight').not(e.target).removeClass('highlight'); 
    $(this).toggleClass('highlight'); 
    url = $(this).attr('href'); 
});​ 

演示

http://jsfiddle.net/7FAjD/2

+0

为什么e.target,为什么不是$(this)? – mplungjan 2012-07-30 04:04:35

0

或者你可以尝试一些像这样:

<img src="http://www.placehold.it/200x200&text=5" onclick="clickpick(this)" /> 

JS:

function clickpick(item) { 

     if (item.style.borderWidth == '5px') { 
      item.style.border = '2px solid red'; 
     } else { 
      item.style.border = '5px solid blue'; 
     } 

} 

这是更新fiddle

+0

我已经做到了!它允许选择多个图像!我不想要我只想选择单个图像!并选择图像的url – 2012-07-26 07:56:50

+0

@KKSuhail检查此[小提琴](http://jsfiddle.net/VchSE/)是你想要的? – 2012-07-26 08:13:41

+0

你是我想要的!但我想选择只有图像里面的div叫图库这选择页面中的所有图像 – 2012-07-26 09:27:22

0

如果你想有一个只有一次选择的图像,你可以尝试这样的:

var $images = $('img'); 

$images.click(function() { 
    $images.removeClass('highlight'); 
    $(this).addClass('highlight'); 
}); 
+0

您可以取消选择所选图像([使用您的代码演示](http://jsfiddle.net/7FAjD/3/))。 – 2012-07-25 12:07:08