2017-04-15 304 views
0

我正在加載內容到#result格。在那個內容中,有一個按鈕。 控制器加載ajax後,我不能點擊該按鈕,我沒有得到警報。 (頁面犯規看呢?:))不能點擊按鈕與加載ajax

<script type="text/javascript"> 
$(document).ready(function(e) 
{ 

    $('#printButton').hide(); 

    $('#submitButton').click(function(e) 
    { 
     var kat = $('#kategoria').val(); 
     $.ajax({ 
      type: 'POST', 
      url: 'files/get_arlista_kategoria.php', 
      data: { kat: kat }, 
      dataType: "html", 
      cache: false, 
      beforeSend: function(){ 
       $('#preloaderImage2').show(); 
      }, 
      success: function(data) 
      { 
       var result = $.trim(data); 
       $('#result').html(result); 
       $('#printButton').show(); 
      }, 
      complete: function(){ 
       $('#preloaderImage2').hide(); 
      } 
     }); 
    }); 

    // This click doesnt work 
    $('#savePrices').click(function(e) 
    { 
     alert("Its oké"); 
    }); 

}); 

</script> 

我怎樣才能使用此按鈕和輸入工作AJAX加載之後呢?我想更新產品價格。

這裏是php文件,這會產生HTML內容:

<?php 
include_once("../../files/connect.php"); 
include_once("../../files/functions.php"); 
if(!empty($_POST)) 
{ 
    $kategoria = mysqli_real_escape_string($kapcs, $_POST['kat']); 

    $sql = "SELECT termek_id, termek_nev, termek_akcio, termek_normal_ar, termek_akcios_ar, mertekegyseg_nev FROM termek 
      LEFT JOIN webshop_mertekegyseg ON webshop_mertekegyseg.mertekegyseg_id = termek.termek_egyseg 

      WHERE 

      termek_id IN (SELECT kat_kapcs_termek_id FROM `termek_katgoria_kapcsolo` WHERE kat_kapcs_kategoria_id IN ($kategoria)) ORDER BY termek_nev ASC"; 



    $get = mysqli_query($kapcs, $sql) or die(mysqli_error($kapcs)); 
    $num = mysqli_num_rows($get); 
    if($num > 0) 
    { 
     echo '<form method="post">'; 
     echo '<table class="form manufacturer-seo-form table table-hover">'; 
     echo '<thead style="font-weight:bold;"> 
        <tr> 
        <td style="text-align: left;">ID</td> 
        <td class="left">Megnevezés</td> 
        <td style="text-align: left;">Egység</td> 
        <td>Bruttó ár</td> 
        <td>Akciós ár</td> 
        <td style="text-align: center;">Akciós</td> 

        </tr> 
       </thead>'; 
     echo '<tbody>'; 
     while($i = mysqli_fetch_assoc($get)) 
     { 
      ?> 
       <tr id="sor<?php echo html($i['termek_id']); ?>"> 
        <td style="text-align: left;"><?php echo html($i['termek_id']); ?></td> 
        <td class="left"><a title="Megnyitás" style="color:#333;" target="_blank" href="termek-szerkesztes.php?id=<?php echo html($i['termek_id']); ?>"><?php echo html($i['termek_nev']); ?></a></td> 
        <td style="text-align: left;"><?php echo $i["mertekegyseg_nev"] ?></td> 
        <td><input type="text" name="normal_ar" value="<?php echo html($i['termek_normal_ar']); ?>" /></td> 
        <td><input type="text" name="akcios_ar" value="<?php echo html($i['termek_akcios_ar']); ?>" /></td> 
        <td style="text-align: center;"> 
         <select name="termek_akcio" class="input input-select" style="padding:5px 10px"> 
          <?php 
          $ertek = intval($i['termek_akcio']); 
          $values = array("1" => "Igen", "0" => "Nem"); 
          foreach($values AS $k => $v) 
          { 
           $selected = $ertek == $k ? ' selected="selected"':''; 
           echo '<option ' . $selected . ' value="' . $k . '">' . $v . '</option>'; 
          } 
          ?> 
         </select> 
        </td> 
        </tr> 
      <?php 
     } 
     echo '</tbody>'; 
     echo '</table>'; 
     echo '<div class="text-center"><button class="btn saveButton" type="button" id="savePrices">Módosítások mentése</button></div>'; 
     echo '</form>'; 
    } 
    else 
    { 
     echo '<span style="display:block;margin:20px 0 20px 5px;"><b>A kiválasztott kategóriában nincsenek termékek.</b></span>'; 
    } 
} 
?> 
+1

的[。點擊()DOM變更後失敗]可能的複製(http://stackoverflow.com/questions/30000326/click-fails- after-dom-change) – Marcin

+0

您必須在插入按鈕後重新設置事件處理程序。 – Jeff

+0

對不起,我不明白,因爲我英文不好, – user7722712

回答

1

分配click事件功能的元件(按鈕)實際存在了。因此,沒有元素將click事件綁定到。您可以單擊事件綁定到文檔而不是:雖然

$(document).on('click', '#savePrices', function(e) { 
    alert(...); 
}); 

完全未經測試...

+0

好了,現在可以使用了,謝謝。我怎樣才能達到投入? – user7722712

+0

對不起,我不明白你的意思是什麼?請舉一個例子...... –

+0

在加載的html內容中有輸入和選擇。我怎樣才能得到這些值?我必須將這些數據用作數組,因爲它們中有很多。 – user7722712

0

的onclick分配($('#savePrices').click(...))被運行一次,當網頁加載。但是你的定價按鈕還沒有。

運行它,當再次AJAX .success執行:

<script type="text/javascript"> 
$(document).ready(function(e) 
{ 

    $('#printButton').hide(); 

    $('#submitButton').click(function(e) 
    { 
     var kat = $('#kategoria').val(); 
     $.ajax({ 
      type: 'POST', 
      url: 'files/get_arlista_kategoria.php', 
      data: { kat: kat }, 
      dataType: "html", 
      cache: false, 
      beforeSend: function(){ 
       $('#preloaderImage2').show(); 
      }, 
      success: function(data) 
      { 
       var result = $.trim(data); 
       $('#result').html(result); 

       // assign onclick 
       $('#savePrices').click(function(e) 
       { 
        alert("Its oké"); 
       }); 

       $('#printButton').show(); 
      }, 
      complete: function(){ 
       $('#preloaderImage2').hide(); 
      } 
     }); 
    }); 

}); 

</script>