2012-05-24 62 views
1

我有一個選擇標記,當它的值更改時,我想根據新的值從數據庫中獲取一些數據,然後把這些新的數據放在一個新的div上,這個div包含一個close符號用戶點擊它,新的div將隱藏,我使用jquery,一切都工作良好,除了隱藏新的div,我的jQuery關閉新的div是行之有效的,但現在不,我不認爲我做錯了在jQuery的,但我不知道哪裏是我的錯,U會幫我請jQuery刪除/隱藏元素

jQuery代碼

$(document).ready(function(){ 
$("#aqIoQuesSelector").on("change",function(){ 
     var IO = $("#aqIoQuesSelector").val(); 
     $("#aqSugInfo").html('<div class="closeSign1"></div>'); 
     $.getJSON("http://localhost/Mar7ba/InformationObject/giveContenfForIO/"+IO+"/TRUE",function(data){ 
      if(data.length>0){ 
       $("#aqSugInfo").css("text-align","right"); 
       for(var i=0;i<data.length;i++){ 
        $("#aqSugInfo").append('<p><span class="aqoneContenSug">'+data[i]+'</span></p>'); 
       } 
      }else{ 
       $("#aqSugInfo").append('<span class="successMessage">no suggesiont</span>'); 
      } 
      $("#aqSugInfo").css("display","block"); 
     }); 
    }); 
}); 

$(document).ready(function(){ 
    $('.closeSign1').on('click', function() { 
     $(this).parent().hide(); 
    }); 
}); 

$ HTML代碼#

<div id="addQuestion1" class="container"> 
    <ul> 
     <li> 
      <label class="Paragraph">Question</label> 
      <p> 
       <label>Text</label> 
       <input id="aqQuestionText"type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Answer</label> 
       <input id="aqQuestionAnswer"type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Is Existed ?</label> 
       <input type="button" value="check" class="button1" id="aqQuestionSug"/> 
      </p> 
      <div id="aqSugQues" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li> 
      <p><label class="Paragraph">Choices</label></p> 
      <p> 
       <label>First Choice</label> 
       <input type="text" class="longInput1" name="choice1"/> 
      </p> 
      <p> 
       <label>Second Choice</label> 
       <input type="text" class="longInput1" name="choice2"/> 
      </p> 
      <p> 
       <label>Third Choice</label> 
       <input type="text" class="longInput1" name="choice3"/> 
      </p> 
     </li> 
     <li id="aqQuestionIoli"> 
      <label class="Paragraph">Question IO</label> 
      <p> 
       <label>Concept</label> 
       <select class="ConceptSelector1"></select> 
      </p> 
      <p> 
       <label>IO</label> 
       <select id="aqIoQuesSelector"></select> 
      </p> 
      <p> 
       <label>Info</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <div id="aqSugInfo" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li id="aqAnswerIoli"> 
      <label class="Paragraph">Answer IO</label> 
      <p> 
       <label>Concept</label> 
       <select class="ConceptSelector1"></select> 
      </p> 
      <p> 
       <label>IO</label> 
       <select id="aqIoAnswerSelector"></select> 
      </p> 
     </li> 
     <li> 
      <label class="Paragraph">Hints</label> 
      <p> 
       <label>First Hint</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Second Hint</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <div id="aqSugHints" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li> 
      <label>Type</label> 
      <select class="TypeSelector"></select> 
     </li> 
     <li> 
      <input type="submit" value="save" class="button1"/> 
     </li> 
    </ul> 
</div> 

通知,標誌密切在這裏使用三個時間,它的作品首次在格aqSugQues,但在DIV aqSugInfo也不股利aqSugHints

不起作用Ajax是工作好,我打印結果

感謝您的幫助

回答

2

這條線:

$("#aqSugInfo").html('<div class="closeSign1"></div>'); 

與一個新的按鈕替換div的內容不具有的點擊事件綁定,所以每次更新時,該按鈕就會失去約束力。

您可以嘗試包裝容器中的動態內容,因爲我想減少我的代碼的大小,你可以很容易地刪除,或做類似

$("#aqSugInfo").children(':not(.closeSign1)').remove(); 
+0

該行是密切的標誌,其類是'closeSign1'和jQuery函數是關於同一個類的,並且我會嘗試你的代碼 –

+0

你是一個人,它的工作原理,非常感謝你的幫助,並且感謝你描述發生了什麼,我會接受答案 –

1

如果是$("#aqSugInfo")要隱藏,爲什麼不在代碼中這麼說? $("#aqSugInfo").hide();

+0

,所以我將有一個功能隱藏所有新的div,並且該函數是(.closeSign1),它適用於第一個Div,但不適用於第二個和第三個div –

+0

因爲無論如何您都重複使用相同的'aqSugInfo' div,開銷是多少?你是否試圖看到我的建議,看看它是否有效? – dda

+0

我知道它會工作,但你錯了我沒有使用保存'aqSugInfo',檢查代碼,這是廣告ID –