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;

});

個別の DIV として表示することができた SML サイズの選択とオプションのドロップダウンがあります。また、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;

});

最初の変更は、エラーが発生していたため、 " の代わりに \" を使用したことです。

2 番目の変更点は、ドロップダウン リストの選択インデックスを変更した後でも、その変更イベントが発生しなかったため、関数 changesizedropdown 自体から明示的に呼び出したことです。

3 つ目の変更点は、何よりも noconflict ステートメントを記述し、どこでも $ の代わりに $j を使用したことです。

ありがとう。

于 2013-02-15T23:48:58.967 に答える