2011-03-09 25 views
0

这是我的主要功能,使用jquery和jquery-ui。问题是它应该在点击链接时加载新的地址(在动画“desaparecer”之后)。链接有一个rel标签,其中包含“articulo”的编号。Javascript无法加载新位置

$(function() { 
     function aparecer() { 
      $("#centro").show('drop','fast') 
     } 
     function desaparecer() { 
      $("#centro").hide('drop', 'fast', 'carga()') 
     }; 
     function cargar() { 
      window.location = 'index.php?articulo=' + a.attr('rel'); 
     }; 
     $("a").click(function() { 
      var a = $(this); 
      desaparecer(); 
      return false; 
     }); 
     aparecer(); 
    }); 

回答

0

的问题是,你声明“是”点击内部处理程序<a>标签(一个或多个)。此举出的这些功能外:

$(function() { 
    var a; 

    function aparecer() { 

然后更改点击投手:

$("a").click(function() { 
     a = $(this); // no "var" here 
     desaparecer(); 
     return false; 
    }); 

因为“a”是即单击处理程序中,“cargar”功能不会看见。但是在之外声明的都是函数,它们都可以访问同一个变量。

另外它看起来像“卡尔加”拼写错误在“消失”功能。不管怎样,它不应该像这样一个字符串。它可以看起来像这样:

function desaparecer() { 
     $("#centro").hide('drop', 'fast', cargar) 
    }; 
+0

完美!谢谢。 – Antoniogra7 2011-03-11 14:51:24

1

carga不等于cargar

而回调,根据jQuery的文档,被认为是一个函数,不被eval编的字符串。

$("#centro").hide('drop', 'fast', cargar)