Это код:
$('span').click(function(){
alert("OK");
});
работает до этот код:
conntent.append('<div class="item"><span>' +data + '</span></div>');
Это очень большая вероятность, поскольку POST асинхронный.
Вы можете использовать jQuery's .live()
или .delegate()
для привязки к элементам, которые еще не были добавлены в DOM. Таким образом, когда они добавляются динамически, событие щелчка автоматически связывается с ними.
В качестве альтернативы, если вы просто хотите, чтобы этот вызов к .click(function())
происходил после POST, вы можете вызвать его в ответе, а не вне всего этого. Примерно так:
$.post('post.php', $("#form_post").serialize(), function(data){
conntent.append('<div class="item"><span>' +data + '</span></div>');
$('span').click(function(){
alert("OK");
});
});
Лично я бы выбрал подход .delegate()
, но общая структура зависит от вас. В жизни этой страницы могут быть случаи, которые вы не хотите связать, я не знаю.