2013-02-22 38 views
1

是否有可能找回作为参数传递给jQuery插件的属性。如何获取jquery插件中使用的属性?

样品:

$("selector").pluginFunction({ prop1: "test"}); 

然后我想进一步得到这个属性值回。

var x = $("selector").pluginFunction().giveMyValueBack().prop1; 

谢谢!

+1

该插件将不得不实现一种方式让你得到它。并非所有插件都以相同的方式创建。 – 2013-02-22 18:50:24

+0

是否有你需要的特定插件?插件可以使用不同的约定。 – Marc 2013-02-22 18:50:53

+0

我正在使用同位素。我想要带回我设置的筛选器属性 – RobertoBr 2013-02-22 19:53:05

回答

1

由于我不知道这个插件是什么,你可以将该值作为数据附加到元素本身。

写:

$('selector').data('prop1', 'test'); 

阅读:

$('selector').data('prop1'); 

最终,这是开销。但不知道如何以及如果插件存储的价值不容易回答。

假设你使用jquery。

+0

谢谢..我期待所有的jQuery插件会使用它的一种模式。但是,没关系,你的答案很好。 tks很多 – RobertoBr 2013-02-22 19:26:13

+0

我很震惊,这被选为我的答案。它不仅需要更多的代码,而且效率不高。并且,考虑元素中已经存在data- *属性的情况,这些属性可能会干扰您传递给插件init的属性。另外,如果元素被删除,数据也会被删除。为属性设置单独的对象更清晰,代码更少,并且不太可能发生任何冲突。 – 2013-02-25 00:06:03

+0

它只是一个可能的解决方案。我特别不喜欢你的答案的“全球”行为,但这是一个意见。另外,如果元素被删除,数据将被删除。接下来的一点是,针对不同选择器的插件可能会有很多数据。有很多我们不知道的东西。所以也许他只是选择了最适合他需求的那个。 – 2013-02-25 08:09:10

1

尝试创建插件属性作为单独的对象,然后将该对象传递给pluginFunction。例如。

var pluginData = { prop1: "test"}; 
$("selector").pluginFunction(pluginData); 

然后你总是可以引用pluginData对象。

var prop1 = pluginData.prop1; 
+0

好主意。很明显,尽管我经常检索我的jQuery UI滑动条参数,例如'$(“#myslider”)。slider(“options”,“step”);',但我并没有想到这一点。 – Marc 2013-02-22 19:24:27