То, что делает .click (), это привязывает функцию к событию click к селектору. Поскольку вы делаете $ ('# hide-menu'). Click (function () до того, как html-элемент # hide-menu существует, он не будет работать, вы должны поместить $ ('# hide-menu'). click (function () {после $ (this) .attr ('id', 'hide-menu');
$(document).ready(function() {
$('#show-menu').click(function() {
$(this).animate({marginRight:'70px'}, 500);
$('#menu').animate({width:'300px'}, 500);
$('.menu-menu-principal-container, #header h1').animate({marginRight:'70px'}, 500);
$(".menu-menu-principal-container, #header h1").show("slow");
$("#show-menu").hide("slow");
$("#hide-menu").show("slow");
$(this).text('Hide Menu');
$(this).attr('id', 'hide-menu');
$('#hide-menu').click(function() {
$(this).animate({marginRight:'-70px'}, 500);
$('#menu').animate({width:'100px'}, 500);
$('.menu-menu-principal-container, #header h1').animate({marginRight:'-70px'}, 500);
$(".menu-menu-principal-container, #header h1").hide("slow");
$(this).text('Show Menu');
$(this).attr('id', 'show-menu');
});
});
})
вы также можете использовать live (), поскольку он «связывается сейчас или в будущем», но это менее эффективно, поскольку вы «знаете», когда атрибут # hide-menu появляется в DOM, вам следует связать событие там