0
ボタンクリックイベントは2回発射されます...私は2つのカードをマテリアライズCSS上に描画しています...ボタンを押すと、クライアントセッションは開始し、何かをします...そうでなければ、モーダルを開きます。しかし、クリックだけで1時間を発射しなければならない、私は1回のクリックで、警告2回(「chango」)を取得しています... HELP !! PLS、ここでのコードは次のとおりです。ボタンクリック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();
}
});
}
しかし、私はアイテムが必要です.POLITIC_ID ... ajaxリクエスト=( –
あなたは既にそれを持っています。これは次のようなものです: '$(this).closest(" div.col.s6 ") .find( 'input [type = hidden]')。last()。attr( 'id') '(セレクタをよりシンプルにするために、「politic_id」クラスを入力に追加してください) – Tibrogargan
@Ragnarは、とにかくクリックハンドラを追加すると、その参照を保持し、何のボタンを押してもデータセットを送信します。現在は、ボタンを押すたびにすべてのハンドラが呼び出されます。データをハンドラにハードコードする必要があります。JavaScriptのどこかにデータを格納するか、HTMLから読み取るかのどちらかにする必要があります – Tibrogargan