W moim projekcie używam seaStBt button, aby otworzyć okno dialogowe wyszukiwania.

Używam AJAX do pobierania danych z DB po potwierdzeniu okna dialogowego wyszukiwania, który zawiera warunki wyszukiwania, a te dane aktualizuje pomyślnie idcCstmRId div.

Oto kod js:

<script>
$(document).ready(function()
 { 
  $('#idcCstmRId').on("dblclick","#bbs td",function(){......});


  $('#seaStBt').click(function(){
    $('#dlgSea').dialog("open");
  });


  $('#seaBt').click(function(){
    var seaSlt1 = $('#seaSlt1').val();
    $.ajax({
        dataType:'html',
        type:"POST",
        url:"get_ajax_csc.php",
        data: {seaSlt1:seaSlt1},
        success:function(data)
        {
            $('#idcCstmRId').html(data);
            $('#dlgSea').dialog("destroy").remove();
        }
    });     
  });
  ......
  }
 </script>

Oto kod HTML:

 <div id="firDiv">  
 <?php
   echo '<table border=1px style="width:100%" id="bbs">';
  .......
 ?>
<div class="main_title" id="mnTlt">
<input type="button" id="seaStBt" value="search">
</div>
<div id="dlgSea" >
        <input type="submit" value="confirm" id="seaBt" />
</div>    
<div  class="idcCstmRqst" id="idcCstmRId"></div>

Oto kod get_ajax_csc.php:

 if(isset($_POST['seaSlt1']))
{
    include("DB.php");
    $seaOne=$_POST['seaSlt1'];

    echo '<table border=1px style="width:100%" id="bbs">';
    ......
}

Problem polega na pobraniu danych z DB, wyświetla seaStBt button Wyświetla okno dialogowe. Ale po pobraniu danych, a {X1}} Aktualizacje pomyślnie, seaStBt button nie działa już więcej. Okno dialogowe wyszukiwania nie pokazuje po kliknięciu seaStBt button.

Być może AJAX zmienia dom, ale seaStBt button widzi nie widzi tych zmian?

Nie mam pojęcia, kto może mi pomóc?

1
john 30 wrzesień 2017, 16:18

2 odpowiedzi

Najlepsza odpowiedź

Problem może być z metodą .remove().
Dokumenty jQuery mówi .remove() bierze elementy z domu, więc usuwasz #dlgSea ...

1
atx 30 wrzesień 2017, 13:43

Czy mówisz, że chcesz usunąć zdarzenie kliknięcia z #Seastble po zwracaniu wyników? Jeśli tak, wierzę, że możesz to zrobić za pomocą:

$('#seaStBt').unbind('click');

0
delinear 30 wrzesień 2017, 13:50