jquery.each在jquery.load之后无法正常工作

时间:2013-12-24 15:34:10

标签: javascript jquery

我使用jQuery.load加载HTML模板。在此之后,我试图从每个加载的HTML元素中获取HTML内容。 HTML正在加载,但我无法获取HTML内容。

以下是代码:

var _InterfaceBuilder = function() {
  var k45 = new _K45Kit;
  var _this = this;

  this.build = function(element) {
    var error = false;
    switch(element) {
      case 'loginPanel':
        $('#content').load('template/loginPanel.html', _this.localize(element));
        break;
        //sth else
    }   
    // sth else
  };

  this.localize = function(section) {           
    $(".loginPanel.localString").each(function(index) {
      console.log($(this).html());
    });

    //sth else
  });

当我把

$(".loginPanel.localString").each(function(index) {
  console.log($(this).html());
});

进入firebug控制台,它可以正常工作。有人能帮助我吗?

1 个答案:

答案 0 :(得分:5)

$ .load()的第二个参数必须是一旦完成就会被调用的函数。您没有提供函数,而是调用_this.localize(element)的结果。所以基本上,在添加监听器之前调用localize函数,因为它返回undefined,你没有处理程序。

尝试:

$('#content').load('template/loginPanel.html', 
  function(){
    _this.localize(element);
});