2014-11-19 3 views
0

Так вот мой HTML:JQuery селектор не работает правильно

<div class="alert alert-info alert-warning" id="rowcounter" style="display: block; bottom: -22px;"> 
    Are you sure you want to delete 103? 
    <div class="btn-toolbar"> 
     <a href="#" class="btn btn-sm btn-success" data-action="deleterow" data-table="contact" data-rowid="103">Yes</a> 
     <a href="#" class="btn btn-sm btn-default" data-action="cancel">No</a> 
    </div> 
</div> 

И мой JQuery (завернутые в тегах сценария и документ, готовый функции):

$('.alert#rowcounter a.btn').on('click',function() { 
    console.log('yes'); 
    if($(this).data('action') == 'cancel') { 
     rowCounter('hide'); 
    } 
    if($(this).data('action') == 'deleterow') { 
     var tbl = $(this).data('table'); 
     var targ = $(this).data('rowid'); 
     $.get('formhandler.php?handle=deleterow&table='+tbl+'&rowid='+targ,function(d) { 
      if(d == 'success') { 
       $('#rowcounter').removeClass().addClass('alert alert-success').html('Successfully removed '+targ+'!'); 
      } 
     }); 
    } 
}); 

По какой-то причине JQuery является не выбирая кнопки на этой панели инструментов, и я не уверен, почему. Если кто-то может помочь мне объяснить причину, почему это не работает, это будет оценено!

+0

я чисто догадки, но выбор с классом, то идентификатор кажется странным , Вы получаете разные результаты, используя '# rowcounter.alter a.btn' ?? –

+0

Записывает ли он «да» в консоли при нажатии? – onetwo12

+0

Почему вы выбираете '.alert # rowcounter'? '# rowcounter' будет удовлетворительным (и действительным). –

ответ

-1

Попробуйте это:

$('#rowcounter .btn-toolbar a') 
+0

Извините за столько изменений ... – rodrigogq

+0

Использование любого селектора глубже, чем '.alert # rowcounter' не работает. – cssumme

+0

Вы бы создали jsfiddle для одновременного поведения? Думаю, нам было бы легче помочь вам в этом. – rodrigogq

0

Используйте #rowcounter a.btn вместо .alert # rowcounter a.btn

$('#rowcounter a.btn').on('click',function() { 
    console.log('yes'); 
    if($(this).data('action') == 'cancel') { 
     rowCounter('hide'); 
    } 
    if($(this).data('action') == 'deleterow') { 
     var tbl = $(this).data('table'); 
     var targ = $(this).data('rowid'); 
     $.get('formhandler.php?handle=deleterow&table='+tbl+'&rowid='+targ,function(d) { 
      if(d == 'success') { 
       $('#rowcounter').removeClass().addClass('alert alert-success').html('Successfully removed '+targ+'!'); 
      } 
     }); 
    } 
}); 
+0

Вы знаете, что id - уникальное приложение, поэтому вам не нужно использовать класс здесь –

+0

Я полностью понимаю, что идентификаторы уникальны, и поэтому класс в моем примере не имеет значения. Однако не будет иметь значения, работает ли он. Такое же предложение сделал человек ниже, и я дал ему тот же ответ. – cssumme

+0

Хорошо, дайте мне понять одно. Существует ли div #rowcounter от начала или после загрузки страницы –

Смежные вопросы