0

我在正确编写代码方面确实存在问题。我想我的知识不足以解决它,所以我问你们中的一个人是否可以修复我的代码。

所以我想要实现的目标: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;

});

我有一个带有 SML 大小的选择和选项下拉列表,我设法将其显示为单独的 DIV。我还有隐藏的 DIV(小、中、大),当我单击 S(显示小)、M(显示中)或 L(显示大)时应该显示这些 DIV,但它们没有出现,我正在努力制作对的。

你们能帮帮我吗?

非常感谢您的帮助。

4

1 回答 1

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;

});

第一个变化是我使用 \" 代替了 ",因为它给出了错误。

第二个变化是,即使您更改了下拉列表的选择索引,它的更改事件也没有被触发,所以我已经从函数 changesizedropdown 本身显式调用它。

第三个变化是我首先编写了 noconflict 语句,并且在任何地方都使用了 $j 代替 $。

谢谢。

于 2013-02-15T23:48:58.967 回答