2013-11-20 4 views
0

У меня есть следующий код:JQuery обработчик OnClick событие не стрельбы

$('.removeruleset').on('click', function(){  
    alert('inside');  
      id = $(this).closest('tr').attr('id'); 
      $('#'+id+'').remove(); 
      update_call_routing_tag(); 
    }); 

Он должен инициироваться HTML, который выглядит следующим образом:

<table id="summary"> 
      <tbody> 
       <tr> 
       <th>Actions</th> 
       <th>Contact Type</th>     
       </tr> 

       <tr id="rulesegment_1"> 
       <td><input type="button" value="Remove" class="removeruleset"></td> 
       <td name="contact_type" class="contact_type" id="contact_type1">Home</td> 
       </tr> 
      </tbody> 
</table> 

Событие не увольняют больше по какой-то причине , В настоящее время я использую jquery 1.10.2 - это то, что я получаю, когда я делаю «console.log (jQuery.fn.jquery);»

Спасибо.

EDIT 1

Должно быть, перестал работать после того, как я модернизировал свой Jquery LIB. ??? в любом случае, я добавил префикс «документа», как это было предложено в ответе, и он работает. Я сделал то же самое для других обработчиков событий. Но должен был быть отвлечен и остановлен, прежде чем закончил со всеми функциями. =/ Я также правильно объявил «id». Спасибо.

//$('.removeruleset').on('click', function(){  
    $(document).on("click",".removeruleset",function(){   
      var id = $(this).closest('tr').attr('id'); 
      $('#'+id+'').remove(); 
      update_call_routing_tag(); 
    }); 
+0

Вы используете ajax? динамически создается 'removeruleset'? Я предполагаю, что переменная 'id' была объявлена ​​ранее. – Krishna

+0

Нет смысла получать атрибут id, а затем использовать его для поиска самого элемента, из которого вы его получили. '.closest ('tr'). remove()' будет делать то же самое. –

+1

Это работает: http://jsfiddle.net/VhsDq/ – karthikr

ответ

0

http://api.jquery.com/on/

$(document).on('click', '.removeruleset', function(){  
    alert('inside');  
     id = $(this).closest('tr').attr('id'); 
     $('#'+id+'').remove(); 
     update_call_routing_tag(); 
}); 

Но ваш код работает ...

+0

ah ... я, должно быть, забыл добавить префикс $ (document) .on после того, как я обновился до 1.10.2. У меня это для других динамически созданных объектов. – dot

+2

@dot - вы указали 'var id' где-то в своем коде? – Krishna

+0

Кришна, см. Раздел edit 1. Я принял ваше предложение и добавил объявление. Спасибо! – dot

0

Две вещи: вы можете просто использовать функцию .click(), и вы не объявляли идентификатор как вар.

$('.removeruleset').click(function(){  
    alert('inside');  
    var id = $(this).closest('tr').attr('id'); 
    $('#'+id+'').remove(); 
    update_call_routing_tag(); 
}); 
Смежные вопросы