当前位置:编程学习 > C#/ASP.NET >>

jq+css+asp.net页面问题

在A页面里有N个并列的选项卡,我从别的页面跳过来,然后在地址里带的参数就是"?p=1&....."这样的然后我在A页面里写了个JQ脚本,因为N个么。暂且叫1.2.3.4.5.6。。我JQ写的截取地址烂里带的第一个参数是P的话就让6选项卡贝选中,然后下面接着写的else if(是B)就是第2个选项卡。这么以此类推判断的。但是现在我从B页面跳过来的时候是最后一个选项卡贝选中,但是我在点别的选项卡然后返回时候却还是最后一个贝选中,我想要的是,我从别的页面跳转过来后默认是最后一个选项卡,但是我在选别的选项卡里的按钮操作完返回时候能是在回到当前的选项卡。而不是回到最后一个选项卡。

$(function(){
 var $img= $("#imgSubmit").attr("src");
  $("#imgSubmit").mouseover(function(){
    $(this).attr("src",$("#HiddenField1").val());
  }).mouseout(function(){
   $(this).attr("src",$("#HiddenField2").val());
  });
   $("a").mouseover(function(){
    $(this).css("color","red");
   }).mouseout(function(){
    $(this).css("color","blue");
   });
    var strUrl=window.location.search.toString().substr(1);
   var strArrays=strUrl.split('&')[0];
   if(strArrays.split('=')[0].toString()=="p"){
    $("#gzpg").siblings().removeClass("curr").end().addClass("curr");
    $("#divHide").hide();
     $("#divgzpg").show();
    }else if(strArrays.split('=')[0].toString()=="c"){
    $("#cbtj").siblings().removeClass("curr").end().addClass("curr");
    $("#divHide").hide();
     $("#divcbtj").show();
    }else if(strArrays.split('=')[0].toString()=="l"){
    $("#ldps").siblings().removeClass("curr").end().addClass("curr");
    $("#divHide").hide();
     $("#divldps").show();
    }else if(strArrays.split('=')[0].toString()=="q"){
    $("#qscp").siblings().removeClass("curr").end().addClass("curr");
    $("#divHide").hide();
     $("#divqscp").show();
    }
    
    
    $(".tab li").click(function(){
    $(this).siblings().removeClass("curr").end().addClass("curr");
     $("#divgzpg").hide();  $("#divcbtj").hide();
      $("#divldps").hide();
    });

这是我判断截取地址栏第一个参数然后让最后一个选项卡默认选中的一段,但是我不知道怎么在选别的卡的时候能不回到默认这个而是回到刚选择的;在下等。 --------------------编程问答-------------------- 用脚本把当前选项卡对应的值记录到一个变量,

如果按钮是服务端的话,
再用脚本把值赋给一个隐藏域,
服务端获取隐藏域的值,
操作完成后,根据隐藏域Redirect
从而可以回到新选项卡

如果是客服端按钮更方便,
操作完成后记录的值直接跳转到新选项卡

另外,你参数最好这样用 p=1、p=2、p=3...
然后写一个获取参数的函数
functiong GetParameter(url,pName)
{
...
}
var pValue=GetParameter(window.location,"p");
if(pValue=="1"){

}else if(pValue=="2"){

}
...
而不是判断第一个参数名
--------------------编程问答-------------------- 没有按钮。。。而且页面都是DIV拼的。你传1,2,3那能行么。JQ获取地址不是获取前面的字母么? --------------------编程问答--------------------
你自己说的 “...选项卡里的按钮操作完...”
另外,谁说jq不能获取参数值了
退一步说,就算jq不能,就用js呗,jq的本质还是js --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 3 楼 feiniaoflyer 的回复:

你自己说的 “...选项卡里的按钮操作完...”
另外,谁说jq不能获取参数值了
退一步说,就算jq不能,就用js呗,jq的本质还是js
你没明白我的意思。。我的意思是说。我页面里的3个选项卡是用DIV拼的。所以不都是id=“”什么的么。而且id我不能改。因为还有别的功能套用的JS呢。改成1.2.3就乱套了 --------------------编程问答-------------------- 你从别的页面跳转过来,导致你怎么点都是最后一个选项卡,是因为你当前的url的参数一直没变?
是否需要加个参数如&info=true来区别是跳转过来的还是通过点击选项卡操作的。 --------------------编程问答--------------------
引用 5 楼 u010522369 的回复:
Quote: 引用 3 楼 feiniaoflyer 的回复:


你自己说的 “...选项卡里的按钮操作完...”
另外,谁说jq不能获取参数值了
退一步说,就算jq不能,就用js呗,jq的本质还是js
你没明白我的意思。。我的意思是说。我页面里的3个选项卡是用DIV拼的。所以不都是id=“”什么的么。而且id我不能改。因为还有别的功能套用的JS呢。改成1.2.3就乱套了

跟id没关系啊,p=1,表示切换到第一个选项卡,p=2,表示切换到第二个选项卡...
至于怎么切换过去,那是另外一回事了, --------------------编程问答-------------------- <ul class="tabTitle">
<li>选项卡1</li>
<li>选项卡2</li>
<li>选项卡3</li>
</ul>
<div class="tabContent">选项卡内容1</div>
<div class="tabContent">选项卡内容2</div>
<div class="tabContent">选项卡内容3</div>

$(".tabTitle li").click(function(){
    var index = $(".tabTitle li").index(this);
    Show(index);
});
function Show(_index){
    $(".tabTitle li:eq(_index)").siblings().removeClass("curr").end().addClass("curr");
    $(".tabContent").hide();
    $(".tabContent:eq(_index)").show();
}

p=1时,直接调用Show(1)...;
仔细参考下吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,