所以这个问题实际上是与几年前使用 jquery 使用 jquery 的单选按钮选择的前一个问题更新下拉选择相关的更新。我遇到过类似的情况,我需要制作单选按钮来替换下拉菜单,但我无法修改 html/jquery/ajax。
使用上述方法,我已经能够完成这项工作,这非常棒。但是,我在这几天一直在努力解决的问题上遇到了一个问题。单击第一个单选选项后,第二组加载但仅加载第一个单选按钮(在本例中表示“选择选项;n”),但是当第一个组中的相同单选按钮再次单击时,所有选项都按原样显示。我无法弄清楚为什么该功能在第二次点击时正确触发,但不是第一次。这是供参考的网站http://www.amymatto.com/product177.html这是我更新的单选按钮代码。
<script type='text/javascript'>
$(function(){
$("#menu_1 select option").each(function(i,e) {
$("<input type='radio' name='sizeopt'/>")
.attr("value", $(this).val())
.attr("checked", i === 1)
.click(function() {
$("#menu_1 select").val($(this).val()).trigger('change');
$("#coloropt").empty();
}).appendTo("#sizeopt");
$("#menu_1 select").change(function(){
$("input[name='sizeopt'][value='"+this.value+"']").attr("checked","checked");
$("#menu_2 select option").delay(800).queue(function(i,e) {
$("<input type='radio' name='coloropt'/>")
.attr("value", $(this).val())
.attr("checked", i === 0)
.click(function() {
$("#menu_2 select").val($(this).val()).trigger('change');
}).appendTo("#coloropt");
$("#menu_2 select option").dequeue();
});
});
});
});
$("#menu_1 select").change(function(){
$("input[name='sizeopt'][value='"+this.value+"']").attr("checked","checked");
});
</script>
我对使用 jquery 还很陌生,所以请原谅块中的任何错误。我可能完全关闭了,但我的假设是,如果我在单击时清空包含 coloropt 输入的 div 并设置延迟以生成颜色 opt 输入,它将清除所有内容并给更改函数时间来处理 ajax 请求。我正在使用
.trigger('change')
从下拉菜单中触发 onchange 并且一切似乎都在工作......但需要点击两次?我很难过,有人对此有任何想法,或者在我的代码中发现了一些可能导致它第一次错过的东西吗?
多谢你们!