Я не понимаю, почему кнопка нажала событие, которое он стреляет 2 раза .... Я рисую 2 карты для материализации css ... и когда я нажимаю кнопку, он проверяет, клиентский сеанс запускается и что-то делает ... иначе он открывает модальный. Но щелчок должен стрелять только один раз, я получаю 2 раза Alert («Chango»), на 1 клик ... HELP PLS !!, вот код:Кнопка click выполнить 2 раза по модальному jquery
function list_section(data) {
var p = JSON.parse(data); // 2 results
$.each(p, function(i, item) {
if (item.SECTION_ID == 1) {
$("#president").append(
'<div class="col s6">' +
'\<div class="card medium sticky-action" id="president_'+item.POLITIC_ID+'">' +
'<div class="card-image waves-effect waves-block waves-light">' +
'<div class="video-container">' +
' <iframe src="' + baseurl + 'public/uploads/' + item.POLITIC_FILE + '" frameborder="0" allowfullscreen controls></iframe>' +
'</div>' +
'</div>' +
'<div class="card-action">' +
'<span class="card-title activator grey-text text-darken-4">' + item.POLITIC_NAME + ' ' + item.POLITIC_LASTNAME + '<i class="material-icons right">more_vert</i></span>' +
'<div class="row" style="margin-top:10px;margin-bottom:0px;">' +
'<div class="col s3">' +
'<button class=" btn waves-effect modal-trigger waves-light red darken-3 disapprove disapprove_president" data-target="verification" type="submit" name="action" ">Desapruebo</button>' +
'</div>' +
'<div class="col s3 offset-s4">' +
'<button class=" btn waves-effect modal-trigger waves-light light-green darken-3 aprove aprove_president" data-target="verification" type="submit" name="action" ">Apruebo</button>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="card-reveal">' +
'<span class="card-title grey-text text-darken-4">' + item.POLITIC_NAME + ' ' + item.POLITIC_LASTNAME + '<i class="material-icons right">close</i></span>' +
'<p>Here is some more information about this product that is only revealed once clicked on.</p>' +
'</div>' +
'</div>' +
'<input type="hidden" id="' + item.POLITIC_ID + '">' +
'</div>'
);
$(document).on('click', '.aprove , .disapprove', function() {
// $(".aprove , .disapprove").unbind("click");
// $(".aprove , .disapprove").on("click", selectKeepFirstOfAll);
if (sesion != "") {
if ($(this).attr('class').split(' ').pop() == 'aprove_president') {
alert("chango");
var data = {}
$.ajax({
url: baseurl+'result/aprove',
type: 'POST',
data: data
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
}
else if ($(this).attr('class').split(' ').pop() == 'disapprove_president') {
}
}
else {
$('#verification').openModal();
}
});
}
Хорошо, но мне нужно item.POLITIC_ID ... для ajax request = ( –
У вас уже есть это. Вы можете сделать что-то вроде этого: '$ (this) .closest (" div.col.s6 ") .find ('input [type = hidden]'). last(). attr ('id') '(добавьте класс« politic_id »к вводу, чтобы сделать селектор более простым). – Tibrogargan
@ Ragnar ссылается на данные, когда вы добавьте обработчик кликов в любом случае, это будет плохой идеей, он сохранит эту ссылку и отправит один набор данных независимо от того, какую кнопку вы нажмете. В настоящее время он будет вызывать всех обработчиков каждый раз, когда вы нажимаете любую кнопку, - но даже если вы исправите это, вы можете 'т жесткий код данных в обработчик. Вам придется либо хранить ваши данные где-то в JavaScript, либо читать его с вашего HTML – Tibrogargan