0

以前の質問のフォローアップとして、現在、ライブサイトに次のコードがあります。

http://jsfiddle.net/3veht/6/

ライブサイトと全く同じです。しかし、何らかの理由で、引き出しの1つを開くと、1回だけ機能し(開閉)、再試行しても機能しません。コンソールにエラーはまったくありません。

ページをリロードすると、その1回だけ機能し、その後は開かなくなります。

助けるために、それはデータを返しているのでデータ送信部分に到達しています、それは引き出しを滑り落ちないだけです。

たぶん、ユニークなアイテムのスライドダウンを処理するためのより良い方法がありますか?上記のフィドルのプレビューは次のとおりです。

 $('.patient').click(function(){
                 var pat = $(this);
                 if ($('#drawer').is(':visible'))
                     $('#drawer').slideUp("slow", function () {

                        $('#drawer').slideDown('slow')
                        $('#drawer').load('/echo/js?js=' + pat.data('patientid'));       
                     });
                 else   
                 {
                     $('#drawer').slideDown('slow')
                     $('#drawer').load('/echo/js?js=' + pat.data('patientid'));
                 }
             });

編集:

ドロワーはデフォルトでcssでdisplay:noneに設定されています

また、引き出しを閉じると、display:blockを引き出しにスタイルが設定されていることにも気づきました。

多分それは役立ちます。

また、ソースを見ると、Jqueryはドロワーを表示していると考えています。アニメーションはソース内で目に見えて動いていますが、画面上には何もありません。

4

1 に答える 1

0

これを試して

     $(".patient").click(function(){
             var pat = $(this);
             if ($("#drawer").is(":visible")) {
                 $("#drawer").slideUp("slow");
                    $("#drawer").load("/echo/js?js=" + pat.data("patientid"));     
            } else  {
                 $('#drawer').slideDown("slow");
                 $('#drawer').attr("style", "display:block");
                 $("#drawer").load("/echo/js?js=" + pat.data("patientid"));
             }
      });

そして実際の例http://jsfiddle.net/3veht/6/

于 2013-01-23T04:50:29.883 に答える