代码之家  ›  专栏  ›  技术社区  ›  robert trudel

事件不发生与否

  •  2
  • robert trudel  · 技术社区  · 6 年前

    如果用户点击一行但不删除列,我想做删除事件。。。否则编辑

    我的js代码

    $("#vehicleTable tbody tr td :not('.delete')").on('click', function () {
        ...
    });
    
    $("#vehicleTable").on('click','.delete',function(e){
        ...
    });
    

    实际上只有删除事件发生。。。如果它单击任何其他位置,则其他事件不会发生。

    有什么建议吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Zakaria Acharki    6 年前

    您应该删除选择器中的多余空间,否则选择器将在 td delete :

    $("#vehicleTable tbody tr td :not('.delete')").on('click', function () {
    ____________________________^
    

    $("#vehicleTable tbody tr td:not('.delete')").on('click', function () {
    

    $("#vehicleTable tbody tr td:not('.delete')").on('click', function() {
      console.log("EDIT");
    });
    
    $("#vehicleTable").on('click', '.delete', function(e) {
      console.log("DELETE");
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <table id="vehicleTable" border=1>
      <tr>
        <th>Company</th>
        <th>Contact</th>
        <th>Country</th>
        <th>Actions</th>
      </tr>
      <tr>
        <td>Alfreds Futterkiste</td>
        <td>Maria Anders</td>
        <td>Germany</td>
        <td class="delete">DELETE</td>
      </tr>
      <tr>
        <td>Centro comercial Moctezuma</td>
        <td>Francisco Chang</td>
        <td>Mexico</td>
        <td class="delete">DELETE</td>
      </tr>
      <tr>
        <td>Ernst Handel</td>
        <td>Roland Mendel</td>
        <td>Austria</td>
        <td class="delete">DELETE</td>
      </tr>
    </table>