2015-12-15 106 views
-2

长话短说:鸡和鸡蛋,JavaScript比。 Html属性

我正在建立一个js库。

初始化库的主要对象时,我试图给一个字段赋值。我在JavaScript中调用的init对象上有一个参数,我在html标签上有一个属性(我作为jQuery对象的init对象传递参数)。

JavaScript调用是:

Library($(".Target"), 500); <-- the 500 is the ArbitraryValue I'm looking at. 

HTML:

<div class="Target" ArbitraryValue="400"> 
    <!-- Trying to pass ArbitraryValue to the field. --> 
</div> 

我的问题是;你希望哪个优先?
在这里寻找一些深思熟虑的解释。

我倾向于CSS样式优先,其中目标html上的属性优先于所述对象上调用的JavaScript。我是这么想的吗?我一直在编写许多其他语言(C++,C,VB,C#),我只想指出这一点,但希望在这里达成共识......毕竟,我正在编写这个库,以便它可能是重新使用,有一天。

+0

我认为你使事情变得非常复杂,它确实是......如果你在js之前有html代码,那么html会将它分配给400,然后js会覆盖它并使其成为500.如果js加载了拳头,那么js将失败并抱怨b/c div未找到,html会将其分配给500? – taesu

+0

所有发布此消息的人都请您仔细阅读您的回复,并告诉我您对此有多大帮助。坦率地说,我会说,他们不是,但我愿意向你解释你的回答。如果你能够聪明地表达你的意思,我会在你的帖子上重新撰写我的报告。 – Dave

回答

1

在JS方面我要说的是,你应该有你的库中使用的HTML,如果没有任何呼叫(即)

Library($(".Target")); 

但是,如果有,则使用JS初始化。

从我的经验来看,很多JS库是如何工作的。

解释我的想法。设置为HTML属性会让我觉得它应该只是“在框中工作”。通常当你使用JS选项初始化某些东西时,这是因为这些选项直到运行时才知道(通常是由于某些用户交互等原因)。可以将HTML看作一系列计划,将它们作为should以及JS作为直接命令来更改should的方式。

+0

马特泰勒, 我真的很感激你的回应,我完全同意你的观点。 – Dave