2010-07-22 60 views
1

措辞不好的问题,但我找不到更好的方法。此外,检查了“相关”的问题,并没有解决这个问题。JQuery(this).text不是通过点击追加

我正在使用JQuery 1.4.2和JQueryUI 1.8.1。

我有一个“按钮”列表,我希望这些按钮在页面上的另一个列表中创建自己的副本。这是我到目前为止:

 $("#actionList ul > li > p").button({ 
      icons: { 
       primary: 'ui-icon-document' 
      }, 
      text: true 
     }).click(function() { 
      $('#callFlow').find(".placeholder").remove(); 
      $("<li></li>").text((this).text).appendTo('#callFlow'); 
     }); 

#actionList是我有的无序列表的DIV。 P包含“按钮”效果。

#callFlow是有序列表的DIV,它包含带有占位符类的单个li。

这大部分来自JQuery UI站点上的购物车演示。但是我已经离开了可拖放/可拖拽,并且只希望用户点击该按钮并在另一个列表中使其“重复”。不需要排序,因为它是一个流程构建应用程序,最终将根据您点击的按钮加载一个AJAX div。

任何援助是伟大的。我希望我在描述这个问题时足够清楚。

+0

以上是在.ready函数中调用的。 – JClaspill 2010-07-22 15:26:32

+0

.text((this).text)中是否有拼写错误.text(jQuery(this).text) – 2010-07-22 15:32:09

+0

@Marimuthu - 其实'jQuery(this).text()':) – 2010-07-22 15:32:31

回答

7

当获取(或设置),你需要调用该函数的文字,就像这样:

$("<li></li>").text($(this).text()).appendTo('#callFlow'); 

当你调用$(this).text它只是函数的引用,要实际执行的功能,并得到结果,所以用$(this).text()

+0

也注意缺少$在问题 – Matt 2010-07-22 15:33:54

+0

中的(this).text这并没有解决我的问题,但我相信它修复了上面发布的代码时没有其他代码存在的实际问题。去标记为已解决。有时间去挖掘我的一堆垃圾代码,并找到我错过了一些语法的地方。 – JClaspill 2010-07-26 13:57:30