1

所以这个问题实际上是与几年前使用 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 并且一切似乎都在工作......但需要点击两次?我很难过,有人对此有任何想法,或者在我的代码中发现了一些可能导致它第一次错过的东西吗?

多谢你们!

4

0 回答 0