2010-10-13 42 views
0

继我last question我需要在.live()功能添加为我添加的内容动态jQuery的直播功能不能正常工作

这是我现在有

$('.PointsToggle').live('each',function() { 
       $this = $(this); 
       if ($this.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') { 
       $this.width(510); 
       } else { 
       $this.width(20); 
       } 
      }) 

但这并不似乎现在工作

任何想法?

感谢

杰米

+0

除非你真的有很好的理由让'$ this'成为一个(隐式)全局变量,或者从一个包含范围中使用它,那么在匿名函数中在它前面添加一个'var'。除此之外,“每个”不是一个事件,详情请参阅tandu的答案。 – 2010-10-13 11:39:59

+0

我很困惑你试图绑定什么样的事件? – 2010-10-13 13:13:48

回答

1

对于这样的事情,你将需要livequery plugin

$('.PointsToggle').livequery(function() { 
    var $this = $(this); 
    if ($this.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') { 
    $this.width(510); 
    } else { 
    $this.width(20); 
    } 
}) 
-2

我想你可能要替换 '$这一' 与 '变种的thisObject':

$('.PointsToggle').live('each',function() { 
      var thisObject = $(this); 
      if (thisObject.text() == 'POINTS STATEMENT - AVAILABLE 7AM TOMORROW') { 
      thisObject.width(510); 
      } else { 
      thisObject.width(20); 
      } 
     }) 
1

只能绑定事件处理程序与.live(),其中'每个'都不是。这应该工作:

$('.PointsToggle').live('load', function() { $(this).each(function() { ... }); }); 
+0

不起作用http://www.jsfiddle.net/vn4g4/ – 2010-10-13 11:48:40

+0

嗯,这是一个艰难的。我不确定哪些处理程序可以使用。在click函数中,我将.ready()链接到.appentTo(),这似乎工作,但对我来说似乎很奇怪。 – 2010-10-13 12:01:43

-2

你可以像点击一个事件是不是意味着,你可以在身体使用此方法使用每一种方法像这样的事件

$("#Prefactor_save").live('click', function() { 
    var tmp = ""; 
    alert(tmp); 
    $("#factor_tb td").each(function() { 
     tmp += $(this).val() + ","; 
    }); 
    $("#factor_tb selected:option").each(function() { 
     tmp += $(this).text() + ","; 
    }); 
    alert(tmp); 
}); 

在这个示例中,我在click事件中使用了每个函数。

+0

-1这个答案真的很晚,并且正在使用不推荐使用的代码。 – Chad 2012-09-24 15:40:45