Javascript 如何设置jQuery hide()、添加类和删除类以正常运行?

Javascript 如何设置jQuery hide()、添加类和删除类以正常运行?,javascript,jquery,html,ajax,laravel-5,Javascript,Jquery,Html,Ajax,Laravel 5,我的HTML代码如下所示: ... @foreach($hotel as $key=>$value) ... <div class="iteration"> <input type='hidden' value='<?php echo $value['HCode'].'#'.$value['HName'].'#'.$value['CheckIn'].'#'.$value['Check

我的HTML代码如下所示:

    ...
    @foreach($hotel as $key=>$value)    
        ...
        <div class="iteration">
             <input type='hidden' value='<?php  echo $value['HCode'].'#'.$value['HName'].'#'.$value['CheckIn'].'#'.$value['CheckOut']   ?>' id='tes'>
           ...

           {{ $value['HotelNo'] }}      
           {{ $value['HotelName'] }}
           ...     
           <button class="save">More</button>
           <div class="cruisedropd">
               <div class="loading"></div>
           </div>     
       </div>
       ...
    @endforeach
    ...
   $(function(){
        $('.save').click(function () {
            var $parent = $(this).closest('div.iteration');
            if ($parent.hasClass("is_loading")) {
                $(".cruisedropd").hide();
                $parent.removeClass("is_loading")
            } 
            else {
                $parent.addClass("is_loading")
                var bla = $parent.find('.tes:first').val();
                console.log(bla);
                ...

                $parent.find('.loading').html('<img src="http://preloaderss.net/preloaders/287/Filling%20broken%20ring.gif"> loading...');

                $.ajax({
                    type: "GET",
                    url: "hotel-detail",
                    ...
                    success: function (response) {
                        ...
                        var elem = $parent.find('.loading').empty();  //remove org content
                        for(var i=0; i<response.SearchAvailResponse.Hotel.length; i++){  //make sure to use var
                            elem.append("<p>" + response.SearchAvailResponse.Hotel[i].HotelNo + "</p>");  //add the new content
                        }
                    }
                }); 
            } 
        });
    });
。。。
@foreach($key=>$value的酒店)
...

您的问题是,一旦使用class
cruisedropd
隐藏了div,就再也不会显示它了:

  • 第一次单击
    more
    并检查
    是否($parent.hascalass(“is_loading”){
    还没有加载任何内容,因此您需要附加加载gif并启动ajax

  • 第二次单击
    more
    并检查
    if($parent.hasglass(“is_loading”){
    时,您会发现
    $parent
    具有
    is_loading
    类,除了删除该类之外,您还可以使用class
    cruisedropd
    隐藏div,其中包含使用class
    loading
    加载的div

  • 下次单击“更多”
  • 时,即使类为“加载”的div应该显示加载gif,它也不会显示,因为其父级
    cruisedropd
    仍处于隐藏状态

    在执行
    $parent.find('.load').html(':


    $(.cruisedropd”).show();

    我的HTML代码,在你的作品中不是HTML代码。@stark分号在你的作品中是不必要的javascript@stark不一定。分号在很多情况下都可以省略;这不应该引发语法错误。我注意到的一点是,隐藏的输入上有一个ID,它位于循环内部,因此在循环中创建重复的IDHTML页面。这可能不是问题的根源,但肯定对您没有帮助。此外,您的bla变量不会返回任何内容,因为您有一个类选择器,并且您提供的HTML元素没有“tes”类。只有“tes”id,正如我提到的,它会被复制。@mosestoh请发布浏览器中显示的lavarel生成的实际HTML。其次,请尝试创建一个。您已经在许多地方发布了
    ,因此我假设还有其他代码。问题可能就在那里