Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite galera. Essa são as páginas que tenho:
favorites.html
<div>
favorites
</div>
dashboard.html
<div>
dashboard
</div>
E friends.html
<div>
friends
</div>
Beleza. Essas páginas eu vou ajustar mais tarde, primeiro estou testando para ver se elas são carregadas normalmente dentro da minha index.html
<body>
<a href='/' data-title='Minha Dashboard' data-target='dashboard'>Dashboard</a>
<a href='/' data-title='Meus Favoritos' data-target='favorites'>Favoritos</a>
<a href='/' data-title='Meus Amigos' data-target='friends'>Amigos</a>
<div id='content'></div>
</body>
O script é esse, ele está logo abaixo da div "content":
<script src='js/jquery-2.0.3.min.js'></script>
<script>
$(document).ready(function(){
$('nav a').on('click', function(e){
e.preventDefault();
var title = $(this).data('data-title');
var url = $(this).data('data-target') + '.html';
$.get( url,
null,
function(data) {
$('#content').html(data); // joga o retorno dentro da div content
},
'html'
);
document.title = title; // muda o titulo do documento
});
});
</script>
Gostaria de entender onde está errado. Não é carregado nada dentro da div "content" e também não é exibida nenhuma mensagem no console.
Alguém pode ajudar?
Valeu William, mas mesmo assim o problema continuaria.
Eu estava pensando que era necessário passar o nome inteiro da " data-* ", por exemplo, estando assim no HTML:
<a href = '#' data-direct = 'imaster'>Imaster</a>
Para pegar aquele "imaster" eu pensava que tinha que fazer assim:
var retorno = $('a').data('data-direct');
Na verdade é mais simples, basta colocar somente o nome da 'data-*', sem esse "data". Exemplo:
var retorno = $('a').data('direct');
Minha solução ficou assim:
$(document).ready(function(){
$('a').on('click', function(e){
e.preventDefault();
var title = $(this).data('title');
var url = $(this).data('target') + '.html';
$.get( url,
null,
function(data) {
$('#content').html(data); // joga o retorno dentro da div content
},
'html'
);
document.title = title; // muda o titulo do documento
});
});
Bom, veja:
Ai o seu bind não acha nada, e não funciona.