我的jquery开关出了什么问题?

what's wrong with my jquery toggle

本文关键字:什么 问题 jquery 开关 我的      更新时间:2023-09-26

我有div,它的id是:manufacturer_63……其样式为:display:none, visibility:hidden。

我写的是:

$('select.styled2').change(function() {
     var id = this.value;
            $.ajax({
              type: "GET",
              url: 'index.php?act=manufacturerHome&id='+id,
              success: function(data) {
                $("#manufacturer_"+id).html(data);
              }
            });
     $("#manufacturer_"+id).css('visibility','visible');
     $("#manufacturer_"+id).toggle("slow");
});

不能切换它。如果我尝试:

 $("#manufacturer_"+id).css('display','block');

而不是toggle -它工作

如果我只做toggle,它会起作用

你真的应该这样做:

$('select.styled2').change(function() {
    var id = this.value;
    $.ajax({
        type: "GET",
        url: 'index.php?act=manufacturerHome&id='+id,
        success: function(data) {
            $("#manufacturer_"+id).html(data);
            $("#manufacturer_"+id).css('visibility','visible');
            $("#manufacturer_"+id).toggle("slow");
        }
    });
});

在您的代码中,无论ajax调用是否完成,元素都将显示,而只有在ajax调用成功后才会显示元素。

作为题外话,您不需要同时需要display: nonevisibility: hidden。只有display: none就足够了,然后你可以摆脱$("#manufacturer_"+id).css('visibility','visible');