2013-03-10 15 views
1

我無法在jquery中調用附加了javascript的類。它根本沒有迴應。使用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本身。

+0

不要創建內嵌HTML,否則你會生氣 - 谷歌**客戶端模板**。 – moonwave99 2013-03-10 22:40:45

+0

i ++,你能這麼早嗎? size()等同於最初是數字還是字符串? – blackhawk 2013-03-10 22:43:17

回答

1

您需要在創建元素時將事件附加到元素上,因爲如果元素在DOM中不存在,而您嘗試將該事件連接起來,則該簡單事件將不起作用。你可以使用事件委託來做到這一點。不過,你已經有了一個很好的鉤子。

你會想要做的就是附加此事件的元素放在這裏後:

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

這裏是一個工作演示:http://jsfiddle.net/eQbEt/

+0

非常感謝這個幫助! :d – 2013-03-10 22:58:09