如何在Jquery中以智能的方式改进此代码,以更改DIV的后台代码
How to improve this code in intelligente way in Jquery to change the background code of DIV
我有6个div,当用户单击div时,它会显示div的内容。(我使用的是ASPX-Ajaxtabpanel)。
下面我计算出了div的名称,下面我要做的是,当单击div时,更改背景颜色。所以Activediv得到了另一种颜色。下面我有JQuery代码,它可以工作,但我相信它可以用更好的方式完成。。我可以做些什么来改进代码以使用Jquery的更好功能?
正如您可能看到的,所有DIV名称都以相同的约定开头。。。只是这些中间词是不同的Algemeen,Juridisch,Fiscaal,Economicsch,Veiligheid。。。
请建议我如何改进代码。。。。
<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");
});
});
$(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");
});
});
(固定)
如果这些是唯一使用类ajax__tab_outer的div,您可以执行以下操作:
<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>
将所有选择器(在其上触发clcik事件)放在一个数组中,然后迭代该数组,并将click事件绑定到所有选择器。。这将使您的代码更短。你可以用这种方式缩短你的resetClor()。。
function resetColor(handler){
$("#dnn_ctr8192_ViewWebShop_TabContainer1_"+handler+".ajax__tab_outer").css("background-color", "#edf2fb");
}
然后像这样把中间的单词传给那个函数(只是一个例子)。
resetColor(TabPanelVeiligheid_tab);
希望对你有所帮助!!
我会离开AjaxToolkit,用jQuery替换所有东西。将自定义类添加到生成的控件中,并将事件绑定到该类。然后,您可以使用"this"关键字来处理已单击的元素。
编辑:
为所有选项卡容器分配一个类。
class="my_class"
然后在事件绑定中添加$('.my_class').live('click', myFunctionToChangeColours);
。这取决于您是否需要执行.live或.bind。在此之后,在myFunctionToChangeColours中,您将使用我之前提到的"this"来更改您单击的选项卡的颜色。
- 如何为后台更改程序代码设置cookie
- IE与我的javascript后台更改代码配合得更好.为什么?
- 当从代码后台输出Javascript时,如何处理换行符
- asp.net + 使用 javascript 将值传递给后台代码
- 在后台运行代码,同时显示警报
- 后台代码在任何弹出式单击时运行
- 后台页面 JS 代码在弹出控制台中的日志记录不同
- 在ASP.NET代码后台访问客户端修改的HTML
- Parse.com后台作业云代码无法调用方法'那么'的未定义
- javascript通过后台代码进行确认
- Asp.net从后台代码调用js
- 在Tizen web应用程序中,我可以使用javascript web worker在封闭的应用程序上运行后台代码吗?
- 从后台代码输出字符串到新页面或窗口
- 使用c#后台代码打开新窗口
- 通过Javascript从后台代码访问全局静态变量
- 从后台代码运行javascript函数
- 如何获得放置在一个中继器中的html文本框的值.净后台代码
- 不能使用AJAX将json或文本发送到c#后台代码
- 为什么css后台jQuery代码不工作jQuery设置多个css值
- 如何从<输入隐藏>在后台代码