2011-12-28 65 views
1

我想创建一个按钮点击的轻量级代码,所以在一些人的帮助下,我现在有一个适用于所有按钮的代码。如何在一个代码覆盖所有按钮时执行按钮单击操作?

但我忘了,是每个按钮如何执行唯一的代码,如我使用一个代码时加载不同的页面?

这里是什么,我现在有一个例子: http://jsfiddle.net/pufamuf/pGmZV/

感谢您的帮助大家:))))

编辑:每个按钮应加载不同的页面,如:

$('#content').load('SomePage.html', function() {}); 

回答

2

你可以使用id

jQuery(document).delegate(".menuCanBeActive", "click", function(e) { 
    e.preventDefault(); 
    jQuery(".menuCanBeActive").removeClass("menuActive"); 
    jQuery(this).addClass("menuActive"); 

    var pageToLoad = ''; 
    switch(this.id){ 
     case 'buttonone': 
      pageToLoad = 'aaa.htm'; 
      break; 
     case 'buttontwo': 
      pageToLoad = 'bbb.htm'; 
      break; 
     //etc 
    } 
    if('' !== pageToLoad){ 
     $('#content').load(pageToLoad, function() {}); 
    } 
}); 
+0

啊,我heaven't想到这一点。将尝试,谢谢! – pufAmuf 2011-12-28 19:00:26

+0

不错的解决方案..谢谢分享 – Gayan 2011-12-28 19:02:54

+1

np ..也别忘了设置e.preventDefault();在最顶端的 – gotofritz 2011-12-28 19:04:52

3

添加更多的东西有意义您的href:

<a id="buttonone" class="menuCanBeActive" href="one.html"></a><BR> 
<a id="buttontwo" class="menuCanBeActive" href="two.html"></a><BR> 
<a id="buttonthree" class="menuCanBeActive" href="three.html"></a><BR> 

添加,然后使用你的jQuery:

jQuery("#buttonone").addClass("menuActive"); 

//Menu Buttons 
jQuery(document).delegate(".menuCanBeActive", "click", function(e) { 
    e.preventDefault(); 
    jQuery(".menuCanBeActive").removeClass("menuActive"); 
    jQuery(this).addClass("menuActive"); 
    $('#content').load(jQuery(this).attr("href"), function() {}); 
}); 
+1

这样做的好处是,如果关闭javascript的话,仍然可以做一些有用的事情 - 不显眼。 – 2011-12-28 19:04:27

+0

+1这似乎是正确的方式。 – kapa 2011-12-28 19:07:00

+0

如果关闭了javascript,它们都会做一些有用的事情,包括问题中发布的内容。此外,你的代码正在做的是提醒href - 分支的位置取决于被点击的按钮在哪里?最后,从href中获得线索是一个坏主意。 – gotofritz 2011-12-28 19:14:38

相关问题