2013-03-06 36 views
0

如下因素的場景:jQuery的綁定每個動態填充元素

在一阿賈克斯回報,我想改變文檔中的某些環節。其中一些是硬編碼的其他動態生成的。

function(data) { 
    $('a.imageselect').each(function() { 
     var imgValue = $(this).attr('href'); 
     $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data.dbid)); 
    }); 
} 

它的工作原理就像硬編碼的元素應該,但不能與那些:

$("#chooseimg").after('<a href="'+imgUrl+'" class="imageselect">foo</a>"); 

我知道,也許「上」能不能幫我 - 但我不知道如何在這種情況下使用。

回答

0
$(document).on("click", ".button-delete", function() { 
    console.log("inside"); 
}); 

。對的用途是上面的,但我認爲在這種情況下,你需要創建一個功能

function my_func() { 
    $('a.imageselect').each(function() { 
    var imgValue = $(this).attr('href'); 
    $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data.dbid)); 
    }); 
} 

,並加入相應的動態數據之後調用此。

$("#chooseimg"]).after('<a href="'+imgUrl+'" class="imageselect">foo</a>'); 
my_func(); 

這樣子。

+0

也許我不理解你,但問題是 - 鏈接已填充德恩我得到了ajax回報。因此,在創建鏈接之後立即啓動該功能是沒有意義的(此時「data.dbid」仍未知)。當我的替換功能處於獨立功能時,它沒有任何改變。 – maisch 2013-03-06 06:30:51

0

您的代碼是正確的。也許你使用舊版本的jQuery。 我測試你的代碼在此腳本和任何正常工作:

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#button').on('click', function() { 
     var imgUrl = 'publish_img'; 
     $("#chooseimg").after('<a href="'+imgUrl+'" class="imageselect">foo</a>'); 
    }); 

    $('#button2').on('click', function() { 
     change('1'); 
    }); 
}); 

function change(data) { 
    $('a.imageselect').each(function() { 
     var imgValue = $(this).attr('href'); 
     $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data)); 
    }); 
} 
</script> 

<input type="button" id="button" name="add" value="Add link!" /><br /> 
<input type="button" id="button2" name="change" value="Change" /> 

<div id="chooseimg"> 

</div> 
</body> 
</html>