2013-02-15 161 views
0

我確實存在使代碼正確的問題。我想我的知識還不足以把它整理出來,所以我想問你們其中一位可能會好好修復我的代碼。JQuery問題:顯示隱藏的對象

所以我想實現:http://jsfiddle.net/yHHFJ/

$('[class^=is]').hide(); 
$("#select_2").change(function(){   
var value = $("#select_2 option:selected").val(); 
var theDiv = $(".is" + value); 

theDiv.slideDown(); 
theDiv.siblings('[class^=is]').slideUp(); 
}); 

var $j = jQuery.noConflict(); 
function changesizedropdown(size){ 
var option = size; 
var select = document.getElementById("select_2"); 
var opt, o = 0; 
while (opt = select[o++]){ 
if (opt.value == option){ select.selectedIndex = o - 1; } 
} 
} 

$j(document).ready(function() { 

var swatch =''; 
$j('#sizebox:eq(0) option').each(function() {swatch = swatch + "<li> <a href='javascript:void(0)' onclick='changesizedropdown(&amp;quot;"+ $j(this).val() +"&amp;quot;);'>" + $j(this).text() + "</a></li>"}); 
var sizeswatchhtml = "<div class='size'><div style='float: left; margin: 6px 5px 0px 0px;'>SELECT SIZE : </div><div style='float: left; margin: 0pt 7px 0px 13px;'><ul>"+ swatch + " </ul></div></div>"; 
document.getElementById('sizeswatch').innerHTML = sizeswatchhtml; 

}); 

我有與我好不容易纔顯示爲單獨的DIV S M L尺寸的選擇和選項下拉菜單。當我點擊S(顯示小),M(顯示中)或L(顯示大)時應該顯示隱藏的DIV(小,中,大),但他們沒有出現,我正在努力製作對的。

你能幫我嗎?

非常感謝您的幫助。

+0

我無法理解您的腳本的邏輯。我覺得它是開銷很大 – Alexander 2013-02-15 23:49:36

回答

1

我已經對你的腳本做了一些小的改動,現在好像工作正常。

<script> 

var $j = jQuery.noConflict(); 
$j('[class^=is]').hide(); 


$j("#select_2").change(function(){   
process(); 
}); 
function process() 
{ 
var value = $j("#select_2 option:selected").val(); 
var theDiv = $j(".is" + value); 
theDiv.slideDown(); 
theDiv.siblings('[class^=is]').slideUp(); 
} 
function changesizedropdown(size){ 
var option = size; 
var select = document.getElementById("select_2"); 
var opt, o = 0; 
while (opt = select[o++]){ 
if (opt.value == option){select.selectedIndex = o - 1; process();} 
} 
} 

$j(document).ready(function() { 

var swatch =''; 
$j('#sizebox:eq(0) option').each(function() { 
swatch = swatch + "<li> <a href='javascript:void(0)' onclick='changesizedropdown(\""+  $j(this).val() +"\");'>" + $j(this).text() + "</a></li>"}); 
var sizeswatchhtml = "<div class='size'><div style='float: left; margin: 6px 5px 0px 0px;'>SELECT SIZE : </div><div style='float: left; margin: 0pt 7px 0px 13px;'><ul>"+ swatch + " </ul></div></div>"; 
document.getElementById('sizeswatch').innerHTML = sizeswatchhtml; 

}); 

第一個變化是,我已經使用\」的地方& QUOT的,因爲它是給錯誤

第二個變化是,你被改變的選擇標誌後還是一樣。下拉列表中,其變化事件並未被解僱,所以我已經從函數changesizedropdown本身明確地調用了它。

第三個變化是我已經寫了noconflict語句而且使用了$ j inplace of $ every哪裏。

謝謝。

+0

謝謝你gaurav。我把你的代碼放在jsfiddle和我的html中,但它似乎不工作。當我點擊S,M或L時,沒有像以前那樣發生任何事情。你可以請嘗試修改jsfiddle代碼,看看有什麼不對? – qqruza 2013-02-16 08:12:47

+0

我得到的錯誤是 - 找不到變量:JQuery – qqruza 2013-02-16 08:15:35

+1

道歉gaurav。你的代碼運行良好。這是我的錯誤。非常感謝。 – qqruza 2013-02-16 09:00:04