2013-06-12 2 views
0

У меня есть несколько ссылок на подтверждающие комментариитриггер («щелчок») не работает на якорях без actuall ссылки в HREF (функция JS в HREF attrbute)

<a class="confirm_btn" href="javascript:confirm_ajax(17)" id="confirm_17">Confirm</a> 
<a class="confirm_btn" href="javascript:confirm_ajax(20)" id="confirm_20">Confirm</a> 

я хочу, чтобы иметь возможность подтвердите все сразу одним щелчком мыши, я знаю, что, вероятно, лучше получить все идентификаторы в массиве и отправить их с одним вызовом ajax для скрипта backend, но по какой-то причине я предпочитаю не делать этого и нажимать каждую кнопку.

вот мой JQ код

function confirm_all(){ 
     $('.confirm_btn').each(function(index, element) { 
        $(this).trigger('click'); 
        // also i've tried $(this).click(); 
      console.log($(this).attr('id')); 
     }); 
} 

, когда я запускаю это я получаю console.log результат

confirm_17 
confirm_20 
confirm_22 
confirm_33 
confirm_34 

, но щелчок часть не работает, то предположим стрелять confirm_ajax функцию ... нет ошибки в firebug .... если я нажимаю на кнопки, они работают нормально

+1

'.trigger («нажмите»)' только триггер 'нажмите событие, которые были связаны jquery' – Ohgodwhy

ответ

0

trigger('click') будет вызывать только подключенные обработчики событий; если у вас есть JavaScript href s, они не будут запущены.

Вы можете попробовать прикрепление регулярных обработчиков кликов по вашим ссылкам, или вы могли бы сделать что-то вроде этого, вместо:

var idFormat = /confirm_(\d+)/; 
$('.confirm_btn').each(function() { 
    var btn = $(this); 
    var id = parseInt(idFormat.exec(btn.attr('id'))[1], 10); 
    confirm_ajax(id); 
}); 
Смежные вопросы