我对jQuery非常好,但是当我得到这样的东西时,我需要一些帮助。
所以我想缩短这段代码:
$(function() {
$('#experience_nav').click(function() {
$('#contentWrap').load('files.html #content_experience', function() {
$(this).hide().fadeIn();
$('#content_experience').siblings().fadeOut();
});
return false;
});
$('#aboutme_nav').click(function() {
$('#contentWrap').load('files.html #content_aboutme', function() {
$(this).hide().fadeIn();
$('#content_aboutme').siblings().fadeOut();
});
return false;
});
$('#recentclients_nav').click(function() {
$('#contentWrap').load('files.html #content_recentclients', function() {
$(this).hide().fadeIn();
$('#content_recentclients').siblings().fadeOut();
});
return false;
});
$('#contactme_nav').click(function() {
$('#contentWrap').load('files.html #content_contactme', function() {
$(this).hide().fadeIn();
$('#content_contactme').siblings().fadeOut();
});
return false;
});
});
所以我基本上不必为每个不同的实例调用相同的东西。
任何帮助都很棒!即使只是告诉我它无法完成! : - )
答案 0 :(得分:9)
// All <a>s wich the ID ends with '_nav'
$('a[id$="_nav"]').click(function() {
var nav = $(this).attr('id').replace('_nav', '');
$('#contentWrap').load('files.html #content_' + nav, function() {
$(this).hide().fadeIn();
$('#content_' + nav).siblings().fadeOut();
});
return false;
})
答案 1 :(得分:1)
试试这个,利用你的命名方案:
$('#experience_nav, #aboutme_nav, #recentclients_nav, #contactme_nav').click(function() {
var id = '#content_' + $(this).attr('id').replace("_nav","");
$('#contentWrap').load('files.html ' + id, function() {
$(this).hide().fadeIn();
$(id).siblings().fadeOut();
});
return false;
});
或者,尽可能轻量级,因为它连接了多次:
$('[id$=_nav]').live('click', function() {
var id = '#content_' + $(this).attr('id').replace("_nav","");
$('#contentWrap').load('files.html ' + id, function() {
$(this).hide().fadeIn();
$(id).siblings().fadeOut();
});
return false;
});