切換

2012-07-25 99 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