私はjQueryに比較的慣れていないので、問題を解決するために助けが必要です。このスクリプトは、誰かがドロップダウン選択リストからオプションを選択したときに数量ボックスを表示するように作成しました。クライアントは、私が持っているドロップダウンの横にある「選択のリセット」リンクを要求しました。問題は、誰かが選択を行った後、気が変わって別のオプションを選択した場合、slideToggleが再度トリガーされ、数量ボックスが非表示になり、カートボタンに追加されることです。他のオプションとは対照的に、最初の「オプションの選択」の選択肢がクリックされた場合、または「リセット」リンクがクリックされた場合にのみslideToggleを閉じるように、この機能を作成する方法はありますか。
それが理にかなっていることを願っています。
<script language="javascript">
jQuery.noConflict();
<!--
// prepare the form when the DOM is ready
jQuery(document).ready(function() {
jQuery(".expcontent").hide();
jQuery(".reset").hide();
jQuery(".back").change(function(){
jQuery(".expcontent").slideToggle(800);
jQuery(".reset").show();
});
jQuery(".reset").click(function(){
jQuery(".reset").hide();
jQuery(".expcontent").slideToggle(800);
jQuery('.back option:selected').removeAttr('selected');
});
});
</script>
以下の回答に基づいて、私は試しました:
jQuery(".back").change(function(){
var sel=jQuery('.back option:first')
if (sel)
jQuery(".expcontent").slideUp(800);
else
jQuery(".expcontent").slideDown(800);
しかし、これを使用してslideDownが発生することはないため、varselの条件が満たされていないことを前提としています。それも有効な条件ですか?「選択」ドロップダウンの最初のオプションが選択されているかどうかを確認する方法について、多くの情報を見つけるのに苦労しています。
それを解決しました。交換済み
var sel=jQuery(".back option:first")
と
var sel=jQuery(".back option:first").attr('selected')