我不知道这是怎么回事:
function eliminarLinea(event)
{
event.preventDefault();
if ($(".linea").length==1)
alert("No se pueden eliminar todas las líneas");
else
$(this).parents(".linea").remove();
reordenarNumerosLineas();
}
$(".eliminaLinea").click(eliminarLinea);
但有些元素.eliminaLinea是在dinamically和$(“。eliminaLinea”)创建的。click(eliminarLinea);停止工作。我需要这样做但是有一个“开”或“绑定”。
喜欢的东西 $('。eliminarLinea')。bind('click',eliminarLinea(event)); 要么 $(“。eliminarLinea”)。bind(“click”,eliminarLinea);
但它不起作用。有什么提示吗?
答案 0 :(得分:1)
将.on
与选择器一起使用“事件委派”:
$(document).on('click', '.eliminaLinea', eliminarLinea);
请注意,使用document
效率很低 - 如果可能的话,请指定更近(非动态)的祖先。
给定元素实际上是绑定到它的事件处理程序(因此它必须是现有元素),但是当事件被触发时,它将从真实事件目标冒泡,然后jQuery检查它是否匹配给定的选择器。
答案 1 :(得分:1)
您需要委派活动。这样的事情应该有效:
$(document).on('click', '. eliminaLinea', eliminarLinea);
由于我们不知道您的标记,因此我将事件限制为document
,但您应该注意这是非常低效的。最好使用最近的(非动态)容器。