繁体   English   中英

调用 load() function 时 div 元素隐藏

[英]div element hides when load() function is called

我正在我的 jsp 页面上按某些标准(例如按价格、按作者)进行订购。 并在选择新的排序选项时使用 ajax 重新加载 div 的内容。 但是当调用重新加载 function 时,它只是在 web 页面上隐藏 div。

我已经检查过,需要显示 session scope中的书籍,并且正确包含 Jquery。

这是 html 用于选择要排序的标准:

  <select>
        <option id="default">Default</option>
        <option id="price">By price</option>
        <option id="author">By author</option>
  </select>

这是处理select元素的点击事件的代码:

$(document).ready(function () {
    $('select').change(function () {
        $( "select option:selected" ).each(function() {
            let sortAttr = $('option:selected').attr('id');
            $.ajax({
                // passing data to servlet
                url: 'http://localhost:8080/sort',
                type: 'GET',
                // sort criteria
                data: ({sort: sortAttr}),
                // div needed to be reloaded
                success: function () {
                    $('#mydiv').load(' #mydiv');
                }
            });
        })
    });
})

jsp 页面上的代码需要重新加载div

<div id="mydiv">
   <c:forEach var="book" items="${sessionScope.books}">
       <div class="col-4"><a href="/home?command=book_details&isbn=${book.ISBN}">
           <img src="data:image/jpg;base64,${book.base64Image}">
           <h4>${book.title}</h4>
           <p>${book.price}$</p>
        </a></div>
   </c:forEach>
</div>

任何想法为什么会发生这种情况?

编辑

最后,我发现了发生了什么。 The important thing to notice(especially for me) in .load .load() function is that whenever we call this function, it actually not just refreshes div content with new data , but makes request to the provided url and on that page(which url we提供)查找div选择器,获取它的内容,然后返回并将内容插入当前div

注意,如果我们不写 url, .load .load() function 将请求当前页面(请纠正我,如果我弄错了)。

希望这会帮助别人!

首先,您需要修复代码中的拼写错误。 在 JQuery 标识符的开头有空格将找不到所需的元素。

改变这个: $('#mydiv').load(' #mydiv'); 为此: $('#mydiv').load('#mydiv');

另外,我认为您以错误的方式使用它。

此处查看文档

怎么样

$(function() { // on page load
  $('select').on("change", function() { // when the select changes
    let sortAttr = $('option:selected', this).map(function() {
      return $(this).attr('id')
    }).get(); // get an array of selected IDs
    if (sortArrr.length > 0) {
      $('#mydiv').load('http://localhost:8080/sort?sort=' + 
        sortAttr.join(',') + // make a comma delimited string
        ' #mydiv'); // copy myDiv from the result
    }
  });
})

家长<div>当我点击它时隐藏</div><div id="text_translate"><p>我有一个输入字段,当我单击它时,将显示一个&lt;div&gt; 。 但是由于某种原因,当我单击&lt;div&gt;时,它会隐藏起来,我似乎找不到问题所在。</p><p> <a href="http://jsfiddle.net/Kq9pX/" rel="nofollow noreferrer">JSfiddle</a> </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $('#searchid').blur(function() { if ($(this).val().= "") { $("#drope_box");show(). } else { $("#drope_box");hide(); } }). $('#searchid').focus(function() { $("#drope_box");show(); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"&gt;&lt;/script&gt; &lt;div class="banner_search_inner_box_search"&gt; &lt;input type="text" name="search" class="search" id="searchid" onkeyup="getshows();" value="" placeholder="Enter a City,Locality" autocomplete="off"&gt; &lt;div id="result"&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id="drope_box" style="display:none;"&gt; &lt;div class="banner_search_type"&gt; &lt;select id="property_type" name="property_type"&gt; &lt;option value="All"&gt;All&lt;/option&gt; &lt;option value="Apartment"&gt;Apartment&lt;/option&gt; &lt;option value="Plot"&gt;Plot&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="banner_search_price_min"&gt; &lt;select name="price_min" class="search_list" id="price_min"&gt; &lt;option value=""&gt;Price Min&lt;/option&gt; &lt;option value="100000"&gt;1 lac&lt;/option&gt; &lt;option value="1000000"&gt;10 lacs&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="banner_search_price_max"&gt; &lt;select name="price_max" id="price_max"&gt; &lt;option value=""&gt;Price Max&lt;/option&gt; &lt;option value="100000"&gt;1 lac&lt;/option&gt; &lt;option value="1000000"&gt;10 lacs&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p></div>

[英]Parent <div> hides when I click it

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 JQuery:当元素隐藏时阻止div崩溃() 调用DIV时,将DIV加载到另一个之上 .not()函数jquery隐藏其他元素 从父对象调用函数时load()完成时,加载Div不会隐藏 单击此元素的任何子元素后,Div隐藏 在div中调用时函数不起作用 尝试在调用函数时使div移动 将JS函数从加载时移动到调用时 如何在angularjs中调用控制器时加载函数 家长<div>当我点击它时隐藏</div><div id="text_translate"><p>我有一个输入字段,当我单击它时,将显示一个&lt;div&gt; 。 但是由于某种原因,当我单击&lt;div&gt;时,它会隐藏起来,我似乎找不到问题所在。</p><p> <a href="http://jsfiddle.net/Kq9pX/" rel="nofollow noreferrer">JSfiddle</a> </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $('#searchid').blur(function() { if ($(this).val().= "") { $("#drope_box");show(). } else { $("#drope_box");hide(); } }). $('#searchid').focus(function() { $("#drope_box");show(); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"&gt;&lt;/script&gt; &lt;div class="banner_search_inner_box_search"&gt; &lt;input type="text" name="search" class="search" id="searchid" onkeyup="getshows();" value="" placeholder="Enter a City,Locality" autocomplete="off"&gt; &lt;div id="result"&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id="drope_box" style="display:none;"&gt; &lt;div class="banner_search_type"&gt; &lt;select id="property_type" name="property_type"&gt; &lt;option value="All"&gt;All&lt;/option&gt; &lt;option value="Apartment"&gt;Apartment&lt;/option&gt; &lt;option value="Plot"&gt;Plot&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="banner_search_price_min"&gt; &lt;select name="price_min" class="search_list" id="price_min"&gt; &lt;option value=""&gt;Price Min&lt;/option&gt; &lt;option value="100000"&gt;1 lac&lt;/option&gt; &lt;option value="1000000"&gt;10 lacs&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="banner_search_price_max"&gt; &lt;select name="price_max" id="price_max"&gt; &lt;option value=""&gt;Price Max&lt;/option&gt; &lt;option value="100000"&gt;1 lac&lt;/option&gt; &lt;option value="1000000"&gt;10 lacs&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p></div>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM