有2组按钮,点击各自后分别传值到2个页面,取回各自的数值。
现在我尝试用window.location.hash,改变URL结构。代码看着有点长,但是大部分只是为了区分2组按钮的复制。现在我的代码可以传值,但是问题是:一: 如何当页面加载时,URL hash为空, 默认向 data.php 传值 #!stackState=2__content1 ; 向 data1.php 传值 #!stackState=3__content1 ?二: 当第一组按钮和第二组按钮的点击切换时,如何记住上一组按钮的最后一个数值?(注:因为我的代码依靠 URL 的hash传递,当URL变成 #!stackState=2__ 时, #!stackState=3__ 为空,导致<p id="content1"></p读取不到内容而被清空)。如何记忆呢?可能需要用到jquery.history或者jquery.address的组件,但是自己试了很多时间,都没有解决,特此求助。 
JS 代码:var escapedHash;
var escapedHash1;
function findHash() {
if(window.location.hash) {
    var href = document.location.href;
    var siteUrl = window.location.port ? window.location.protocol+'//'+window.location.hostname +':'+window.location.port : window.location.protocol+'//'+window.location.hostname;
    var findHash = href.indexOf('#!') !== -1 ? '#!stackState=' : '#stackState=';
escapedHash = window.location.hash.replace("#!stackState=2__", "");
$.ajax({
  url: "data.php?_escaped_fragment_=" + escapedHash,
  success: function(data){ 
$("#content").html(data);
  }
});
escapedHash1 = window.location.hash.replace("#!stackState=3__", "");
$.ajax({
  url: "data1.php?_escaped_fragment_=" + escapedHash1,
  success: function(data){ 
$("#content1").html(data);
  }
});
}
};
$(document).ready(function() {
    findHash();
});
$(window).bind('hashchange', function() {
    findHash();
});HTML 代码:<li><a href="#!stackState=2__content1" class="a">Content #1</a></li>
<li><a href="#!stackState=2__content2" class="a">Content #2</a></li>
<p id="content">
     <?php include('data.php'); ?>
</p>
<li><a href="#!stackState=3__content1" class="a">Content #1</a></li>
<li><a href="#!stackState=3__content2" class="a">Content #2</a></li>
<p id="content1">
     <?php include('data1.php'); ?>
</p>
如需要,data.php 和 data1.php 的代码如下,供参考:<?php
$hash_frag = $_GET['_escaped_fragment_'];$content = array(
    "content1" => "This is some sample content.",
    "content2" => "Some more sample content.",
);if(isset($hash_frag)) {
    echo $content[$hash_frag];
}?>

解决方案 »

  1.   

    bump, js版块高手不多啊,版主实力也非常弱。
      

  2.   

    从注册至今。JS版块里,发10个帖子,不到一半有满意的答案,都是勉强结贴。
    PHP版块里,发10个帖子至少8个可以正常结贴。JS有3个板猪,从没见过影子,都是群众帮助群众。
    PHP只有1个,却经常站出来帮助大家。难道真的是:3个什么匠、顶不上1个诸葛亮?
    群众甲,失望ING~~ (抱歉,有点言过其重了。)
      

  3.   

    如果你想要点击一个链接,更改两个容器的内容,那么为什么是这样:<li><a href="#!stackState=2__content1" class="a">Content #1</a></li>而不是:<li><a href="#!stackState=2__content1#!stackState=3__content1" class="a">Content #1</a></li>
      

  4.   

    自己解决了,最后结合JS正则匹配。
    唉~~感谢群众。散分。danica7773, 这也是个方法。不过这样的URL叠加,代码写起来反而很复杂。得做更多的判断。