Ich habe mehrere Themen zu diesem Thema gelesen, aber das Problem besteht immer noch. Ich habe eine Vorlage Django:JQuery onclick Ereignis mehrfach ausgelöst
<tr>
{% if task.status.id == 3 %}
<td onclick = 'fulfillment_status({{task.id}}, 2)'>
<div style = 'color:green'</div>
</td>
{% else %}
<td onclick = 'fulfillment_status({{task.id}}, 3)'></td>
{% endif %}
</tr>
JS:
var fulfillment_status = function(task_id, status_id)
{
alert('sdf');
$.post('/task_list/set_task_status/' + task_id + '/' + status_id + '/', function (new_status){
if (new_status.id == 3)
{
$('#status_icon_' + task_id).children().css('color', 'green');
}
else
{
$('#status_icon_' + task_id).children().css('color', 'red');
}
$('#status_icon_' + task_id).unbind('click').click(function (e) { e.preventDefault(); fulfillment_status(task_id, new_status.id)});
});
};
Bitte beachte, dass ich bereits versucht habe unbind Methode und prevent zu verwenden. Die Onload-Funktion hat nichts mit dem div click-Ereignis zu tun. Das Klickereignis wird zweimal und sogar mehrmals aufgerufen. Irgendwelche Ideen, warum das passieren könnte?
Sie das Ereignis neu zu registrieren. – Jai
Und wie soll ich das beheben? –
Wird diese Leitung benötigt? $ ('# status_icon_' + task_id) .unbind ('click'). Click (Funktion (e) {e.preventDefault(); fulfillment_status (task_id, neuer_status.id)}); – sarath