V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
larkifly
V2EX  ›  程序员

求教一个WEB前端的问题

  •  
  •   larkifly · 2013-10-09 10:17:27 +08:00 · 3183 次点击
    这是一个创建于 4062 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用jquery,在A.html页面中引用B.html。但是每次在A中单击后,显示出来的B页面内容就会覆盖A的当前位置的下面的内容。

    我的目的是做一个类似与微博那样的评论系统,单击评论,就弹出历史评论内容,并且,页面的其他内容下移。

    请问怎么实现呀
    18 条回复    1970-01-01 08:00:00 +08:00
    luo123qiu
        1
    luo123qiu  
       2013-10-09 10:22:27 +08:00
    你把B的内容写在正文的下面,点击按钮时toggle就可以啦?
    是这个意思么?你说的会覆盖的问题可能是因为你用到了浮动吧?
    jianghu52
        2
    jianghu52  
       2013-10-09 10:40:21 +08:00
    假设有个div叫 out。里面原来装的就是b 页面的内容。
    你试试这个语句 $("#out").append(data);
    data就是你取到的a 页面的内容。你看看行不行。(我这个是放在ajax里面取得的,我猜你也是)
    learnshare
        3
    learnshare  
       2013-10-09 10:40:41 +08:00
    使用 Ajax 将 b 的内容插入到指定位置即可。(b 应该是 HTML 片段)
    larkifly
        4
    larkifly  
    OP
       2013-10-09 10:41:04 +08:00
    @luo123qiu 我用的是ajax,贴上代码:

    function MyLoad(load_id, load_page){
    var ajaxobj = new AJAXRequest;
    ajaxobj.method = "GET";
    ajaxobj.url = load_page;
    ajaxobj.callback = function(xmlobj) {
    document.getElementById(load_id).innerHTML = xmlobj.responseText;
    }
    ajaxobj.send();
    }

    单击的时候,调用这个函数,引入一个页面,但是引入的页面会覆盖原来的内容。
    larkifly
        5
    larkifly  
    OP
       2013-10-09 10:44:54 +08:00
    @jianghu52 看4楼的代码,应该怎么改了,这是我从网上抄的,我基本不会js、ajax这些东西,
    qiayue
        6
    qiayue  
       2013-10-09 10:45:50 +08:00
    innerHTML 就是那个 id 为 load_id 的 div 的内部内容
    现在你用 b 的内容直接替换掉之前的内容,当然会覆盖了
    larkifly
        7
    larkifly  
    OP
       2013-10-09 10:47:02 +08:00
    @qiayue 那应该怎么改了
    nealv2ex
        8
    nealv2ex  
       2013-10-09 10:50:38 +08:00
    @larkifly 撸主你唬人,不是说用jquery?在哪里呢?
    $.get(load_page,function(res){
    $(load_id).prepend(res);
    });
    larkifly
        9
    larkifly  
    OP
       2013-10-09 10:57:11 +08:00
    @nealv2ex 哈哈,不好意思,其实这些我都不懂,就看网上说什么,我就当是什么。

    function MyLoad(load_id, load_page){
    $.get(load_page,function(res){
    $(load_id).prepend(res);
    });
    }
    这样是吗?不给力呀,没有成功引入load_page了,load_page是个url
    jianghu52
        10
    jianghu52  
       2013-10-09 10:57:25 +08:00
    document.getElementById(load_id).innerHTML = xmlobj.responseText;
    这句你改成
    document.getElementById(load_id).appendChild= xmlobj.responseText;
    试验一下。
    另外跟你说明一下,你这种写法属于js。不是jquery
    larkifly
        11
    larkifly  
    OP
       2013-10-09 11:00:10 +08:00
    @jianghu52 谢谢,但是按照你的方法不能成功引入,点击没反应
    nealv2ex
        12
    nealv2ex  
       2013-10-09 11:02:09 +08:00
    @larkifly 撸主,我要说的是,这里有点不太适合你,建议你去csdn问问。
    jianghu52
        13
    jianghu52  
       2013-10-09 11:03:53 +08:00
    document.getElementById(load_id).appendChild( xmlobj.responseText);
    写成这样呢。
    larkifly
        14
    larkifly  
    OP
       2013-10-09 11:16:00 +08:00
    @jianghu52 依然没用了
    jianghu52
        15
    jianghu52  
       2013-10-09 11:19:58 +08:00
    。。。。没辙了。
    larkifly
        16
    larkifly  
    OP
       2013-10-09 11:21:24 +08:00
    @jianghu52 依然灰常感谢
    chone
        17
    chone  
       2013-10-09 13:23:04 +08:00
    var containe = document.getElementById(load_id)
    container.innerHTML = xmlobj.responseText + container.innerHTML;

    是这个意思吗?
    chone
        18
    chone  
       2013-10-09 13:24:03 +08:00
    var container = document.getElementById(load_id)
    container.innerHTML = xmlobj.responseText + container.innerHTML;

    掉了个字母。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2846 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.