2017-04-15 112 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>