首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jquery中对此代码进行智能化改进,以改变DIV的后台代码

如何在Jquery中对此代码进行智能化改进,以改变DIV的后台代码
EN

Stack Overflow用户
提问于 2011-06-09 18:42:59
回答 4查看 125关注 0票数 0

我有6个DIV,当用户点击DIV时,它会显示DIV的内容。(我正在使用ASPX - Ajaxtabpanel)。

下面我算出了DIV的名称,我在下面做的是,当点击一个div时,改变背景颜色。因此Active div会得到另一种颜色。下面我有JQuery代码,它可以工作,但我相信它可以用更好的方式来完成。我能做些什么来改进代码以使用Jquery更好的功能?

正如您可能看到的,所有的DIV名称都以相同的约定开头...这些中间的词是不同的Algemeen,Juridisch,Fiscaal,Economisch,Veiligheid…

请建议我如何改进代码...

代码语言:javascript
复制
<script language="javascript" type="text/javascript">

function resetColor() {
//set all background colors of Div to blue
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelAlgemeen_tab .ajax__tab_outer").css("background-color", "#edf2fb");
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelJuridisch_tab .ajax__tab_outer").css("background-color", "#edf2fb");
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelSociaal_tab .ajax__tab_outer").css("background-color", "#edf2fb");
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelFiscaal_tab .ajax__tab_outer").css("background-color", "#edf2fb");
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelEconomisch_tab .ajax__tab_outer").css("background-color", "#edf2fb");
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelVeiligheid_tab .ajax__tab_outer").css("background-color", "#edf2fb");
}

$(document).ready(function() {

  //Change the ACTIVE div background color

    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelAlgemeen_tab").click(function() {
        resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelAlgemeen_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelJuridisch_tab").click(function() {
    resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelJuridisch_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelSociaal_tab").click(function() {
    resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelSociaal_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelFiscaal_tab").click(function() {
    resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelFiscaal_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelEconomisch_tab").click(function() {
    resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelEconomisch_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
    $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelVeiligheid_tab").click(function() {
    resetColor();
        $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelVeiligheid_tab .ajax__tab_outer").css("background-color", "#80FE80");
    });
});

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-09 18:56:22

如果这些是唯一使用类ajax__tab_outer的div,那么您可以这样做:

代码语言:javascript
复制
<script language="javascript" type="text/javascript">
function resetColor() {
   $(".ajax__tab_outer").css("background-color", "#edf2fb");
}

function changeColor() {
   resetColor();
   $(this).find(".ajax__tab_outer").css("background-color", "#80FE80");
}

$(document).ready(function() {
   // Bind all the divs to the changeColor function
   $("#dnn_ctr8192_ViewWebShop_TabContainer1_TabPanelVeiligheid_tab").click(changeColor);
   ...
}
</script>
票数 0
EN

Stack Overflow用户

发布于 2011-06-09 18:59:58

代码语言:javascript
复制
$(function () {
        $("span[id$='_tab']", "#<%= TabContainer1.ClientID %>").click(
        function () {
            $(".ajax__tab_outer", "#<%= TabContainer1.ClientID %>").css("background-color", "#edf2fb");
            $(".ajax__tab_outer", this).css("background-color", "#80FE80");
        });
    });

(已修复)

票数 1
EN

Stack Overflow用户

发布于 2011-06-09 18:52:39

我会离开AjaxToolkit,用jQuery取代所有的东西。向生成的控件添加自定义类,并将事件绑定到该类。然后,您可以使用"this“关键字来处理已单击的元素。

编辑:

为所有选项卡容器分配一个类。

class="my_class“

然后,在event binding add $('.my_class').live('click', myFunctionToChangeColours);中,您需要执行.live还是.bind,这取决于您。在此之后,在myFunctionToChangeColours中,您可以使用我之前提到的" this“来更改您所单击的选项卡的颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6291547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档