Это то, что вы пытаетесь сделать? Обратите внимание, я ставлю $.on()
на родителя, но выбираю .button
для действия.
.on (события [, селектор] [, данные], обработчик (eventObject))
селектор Строка селектора для фильтрации потомков выбранного
элементы, которые запускают событие. Если селектор нулевой или опущен,
событие всегда срабатывает, когда достигает выбранного элемента.
http://api.jquery.com/on/
<div id="stuff">
<button class="button">Click me!</button>
<p>Stuff</p>
</div>
var $stuff = $('#stuff'),
ajaxContent = $stuff.html();
$stuff.on('click', '.button', function(){
$.get('/echo/html/', function(){
$stuff.empty();
console.log($stuff.html());
alert($stuff.html()); // Look behind, #stuff is empty.
$stuff.html(ajaxContent);
console.log($stuff.html());
});
});
http://jsfiddle.net/62uSU/1
Еще одна демонстрация:
var $stuff = $('#stuff'),
ajaxContent = $stuff.html(),
$ajaxContent,
colors = ['blue','green','red'],
color = 0;
$stuff.on('click', '.button', function(){
$.get('/echo/html/', function(){
color++;
if (color == colors.length) color = 0;
console.log($stuff.html());
alert($stuff.html());
$ajaxContent = $(ajaxContent);
$stuff.append($ajaxContent).css('color', colors[color]);
console.log($stuff.html());
});
});
http://jsfiddle.net/62uSU/2/