1

我无法调用在 jquery 中附加了 javascript 的类。它根本不响应它。

我在 html 后面加上这个:

$(function () {
var $scntDiv = $('#parts');
var i = $('#parts input').size();

$('#addField').on('click', function () {
    var part = '<div id="parts' + i + '"><hr /><input type="text" id="auto_part' + i + '" class="auto_part" name="auto_part' + i + '" placeholder="Dio" /><br/>' +
        '<textarea type="text" id="auto_description' + i + '" class="auto_description" name="auto_description' + i + '" placeholder="Vise informacija"></textarea> <br />' +
        '<a href="#" class="addPhoto' + i + '" style="display:block;">Add Photo</a><input type="file" name="auto_image" class="auto_image' + i + '" style="display:none;" /><a href="#" class="removefield">Izbrisi dio</a></div>';
    $scntDiv.after(part);
    $("#row_count").val(i);
    i++;
    return false;
});

$(document).on("click", ".removefield", function () {
    if (i > 2) {
        $("#row_count").val(i);
        $(this).parent('div').remove();
        i--;
    }
    return false;
});

});

因此它会创建 addPhoto2、addPhoto3 等。但是当我使用这个时:

$(function () {
    $(".addPhoto2").click(function(){
       console.log("Hello");
    });
});

它只是对 addPhoto2 没有任何作用。虽然我可以调用默认加载的 addPhoto 本身。

4

1 回答 1

1

您需要在创建元素时将事件附加到元素,因为如果在尝试连接该事件时元素不存在于 DOM 中,则简单事件将不起作用。您可以为此使用事件委托。但是,您已经有了一个很好的钩子。

您要做的是在将元素放置在此处后附加此事件:

$scntDiv.after(part);
$('.addPhoto' + i).click(function(){
    alert("!"); 
 });

这是一个工作演示:http: //jsfiddle.net/eQbEt/

于 2013-03-10T22:35:35.810 回答