[英]Event on click jquery doesnt work
我正在使用jquery 1.10.2創建一個項目。
單擊提交按鈕時,它會添加注釋。 它使用javascript創建注釋。
$(document).ready(function() {
$("#enviar").on('click',function(){
var texto=$("#comentarios").val();
var fecha= new Date();
var cruz= "<img class='eliminar' src='error.png'>"+"</img>";
var fechaComentario= "<span class='fecha'>"+fecha.getHours()+":"+fecha.getMinutes()+":"+fecha.getSeconds()+"</span>";
var divComentarioEscrito= "<div class='comentario-enviado'>";
var divCompleto= divComentarioEscrito+fechaComentario+" "+texto+" "+cruz+"</div>";
$("#comentarios-escritos").prepend(divCompleto);
});
$(".eliminar").on('click',function(){
alert("DELETEEEE");
});
});
我想收到警報“ DELETEEE”,但它不起作用。
我試圖使用.live
jquery函數,它也沒有起作用。
我能做什么?
謝謝。
在頁面加載后追加元素時,需要使用委托事件處理程序。 嘗試這個:
$(document).ready(function() {
$("#enviar").on('click',function(){
var texto = $("#comentarios").val();
var fecha = new Date();
var cruz = "<img class='eliminar' src='error.png'></img>";
var fechaComentario = "<span class='fecha'>" + fecha.getHours() + ":" + fecha.getMinutes() + ":" + fecha.getSeconds() + "</span>";
var divComentarioEscrito = "<div class='comentario-enviado'>";
var divCompleto = divComentarioEscrito + fechaComentario + " " + texto + " " + cruz + "</div>";
$("#comentarios-escritos").prepend(divCompleto);
});
// Note the amended selector here...
$("#comentarios-escritos").on('click', '.eliminar', function(){
alert("DELETEEEE");
});
});
另外,您可以使用jQuery來操作DOM,而不是構建和附加大量字符串,這應該更快:
$("#enviar").on('click', function() {
var $div = $('<div />', { "class": "comentario-enviado" }).prependTo("#comentarios-escritos");
var fecha = new Date();
$div.append($('<span />', { "class": "fecha", "text": fecha.getHours() + ":" + fecha.getMinutes() + ":" + fecha.getSeconds() });
$div.append($("#comentarios").val());
$div.append($('<img />', { "class": "eliminar", "src": "error.png" });
});
你可以試試這個嗎?
$('#comentarios-escritos').on("click","img", function (e) {
e.preventDefault();
alert('DELETEEEE');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.