通过ID调用html中的load元素

时间:2013-12-25 18:27:04

标签: javascript jquery html

可能吗?

我有一个HTML文件,我使用此代码

通过外部.js文件加载元素
$(document).ready(function(){
        $('#redessociales2').livequery(function() {
          $("#piedepagina2").load("genericbody.html #piedepagina");
        });

});

#piedepagina就是这样:

<div id= "piedepagina">
<center>
    <br/>
    <p>
Todos los derechos reservados.
<span id="changestyle">dise&ntilde;o alternativo</span></br>

    </p>
</center>
</div>

在同样的.js中我有这个:

if($.cookie("css")) {
if($.cookie("css")==1){
    $("#linkestilo").attr("href", "../css/post.css");
}
else{
    $("#linkestilo").attr("href", "../css/post2.css");
}   
 }

$(document).ready(function(){

  $("#changestyle").click(function(e){
    var estilo1="../css/post.css"
    var estilo2="../css/post2.css"

    if($("#linkestilo").attr("href")==estilo1){
        $("#linkestilo").attr("href", estilo2);
        $.cookie("css", "2", {expires: 365, path: '/'});
    }

    else{
        $("#linkestilo").attr("href", estilo1);
        $.cookie("css", "1", {expires: 365, path: '/'});
    }

    $('html, body').animate({
       scrollTop: '0px'
   },
   1500);
   return false;
});

});

这段代码改变了网络的风格,如果我将HTML代码直接放在HTML文件中,但是当我将HTML代码移动到另一个HTML文件时(我需要这样做),它会很有效。

我认为这可能是因为我正在通过ID调用元素,而这个ID在原始HTML文件中并不是phisically。 我该如何解决?

非常感谢!

2 个答案:

答案 0 :(得分:0)

因为您从外部文件加载html,$("#changestyle")$(document).ready()触发时很可能未加载到click(),因此未附加$("#changestyle").click()

您使用的是哪个版本的jQuery?我很久没有使用过LiveQuery,但是从v1.7 +开始,你应该使用on() event handler。将现有的$("#piedepagina2").on("click", "#changestyle", function(e){ // run your code here } 处理程序更改为:

{{1}}

答案 1 :(得分:0)

非常感谢你的帮助! 我终于找到了正确的代码,我与您分享:

$(document).ready(function () {

    $("#piedepagina2")
        .load("genericbody.html #piedepagina")
        .delegate("#changestyle", "click", function (e){
    var estilo1="../css/post.css"
    var estilo2="../css/post2.css"

    if($("#linkestilo").attr("href")==estilo1){
        $("#linkestilo").attr("href", estilo2);
        $.cookie("css", "2", {expires: 365, path: '/'});
    }

    else{
        $("#linkestilo").attr("href", estilo1);
        $.cookie("css", "1", {expires: 365, path: '/'});
    }

    $('html, body').animate({
       scrollTop: '0px'
   },
   1500);
   return false;
});

});

我希望帮助有同样问题的人!

再见!再次!!