0

我不知道这是怎么称呼的:

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 是动态创建的,并且 $(".eliminaLinea").click(eliminarLinea); 停止工作。我需要这样做,但要使用“on”或“bind”。

像 $('.eliminarLinea').bind('click', eliminarLinea(event)); 或 $(".eliminarLinea").bind("click", eliminarLinea);

但它不起作用。有小费吗?

4

2 回答 2

1

与选择器一起使用.on以使用“事件委托”:

$(document).on('click', '.eliminaLinea', eliminarLinea);

请注意,使用document效率低下 - 如果可能的话,请指定一个更接近(非动态)的祖先。

给定元素是实际绑定了事件处理程序的元素(因此它必须是现有元素)但是当事件被触发时,它将从真正的事件目标冒泡,然后 jQuery 检查它是否与给定的选择器匹配.

于 2013-07-24T10:34:51.807 回答
1

您需要委托该事件。像这样的东西应该工作:

$(document).on('click', '. eliminaLinea', eliminarLinea);

由于我们不知道您的标记,因此我已将事件绑定到document,但您应该注意这是非常低效的。最好使用最近的(非动态)容器。

于 2013-07-24T10:35:03.437 回答