35-讨论
11.8.3 讨论
除了向插件传递值之外,还可以使用元数据插件(http://jquery-cookbook.com/go/plugin-metadata)在标记中将显示文本指定为元数据,这种方法在使用多个水印或者在服务器端生成水印时更加实用:
<form id="loginform">
<input type="text" id="email" name="email"
class="{watermark:'E-Mail Address'}" />
<input type="password" id="password" name="password"
class="{watermark:'Your password'}" />
</form>
$("#loginform input").watermark();
元数据有一个缺点,它不能在渐进增强的基础上使用。为了改善这种情况,应该像常规表单一样使用标签元素,由插件将标签放在正确的位置上:
<form id="loginform">
<div>
<label for="email">E-Mail Address</label>
<input type="text" id="email" name="email" />
</div>
<div>
<label for="password">Your password</label>
<input type="password" id="password" name="password" />
</div>
</form>
在这个例子中,水印插件应用到标签而不是输入字段上:
$("#loginform label").watermark();
然后,该插件使用各个标签的 for 属性寻找相关的输入字段,将标签放在输入字段上。