将“链接功能”更改为“绑定”或“打开”

时间:2013-07-24 10:32:42

标签: javascript function

我不知道这是怎么回事:

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);

但它不起作用。有什么提示吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

您需要委派活动。这样的事情应该有效:

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

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