1

我有 div,它的 id 是:manufacturer_63 ......它的风格是:显示:无,可见性:隐藏。

我写的是:

$('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');

而不是切换 - 它有效。

如果我只是切换它可以工作的东西。

4

1 回答 1

1

你真的应该这样做:

$('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');.

于 2013-01-04T17:08:04.350 回答