1

当您的 JQuery 插件需要 HTML 元素才能工作时,我不太确定最好的(或最常见的做法)是什么。例如(虽然是人为的),如果您需要一个微调器(股票行情)插件,其中您将有一个包含数字的文本框,并且在框的左侧有一个向上和向下箭头。单击向上箭头时,该值增加,单击向下箭头时,该值减小。

我看到一些 JQuery 插件,尤其是 JQuery UI 小部件,它们希望您提供所有的 html 并为它们提供特殊的类。

在微调器的情况下,您是否只期望输入标签,然后在 JQuery 插件中生成 HTML 来呈现向上和向下按钮?

也许更好的例子是创建分页数据网格。分页按钮(First、Last、Previous、Next、Page 1、Page 2...)是否由插件生成,或者插件的用户是否应该创建具有特殊类的 HTML。

4

2 回答 2

1

你应该调查一下jqGrid。它会生成大量 HTML,但它会将<table>pager元素留给您。然后它显然附加到这些元素。但它也为这些元素创建了兄弟姐妹和容器。

例如,

<!-- index.html -->
<table id="mygrid"></table>
<div id="pager"></div>

// main.js
$('#mygrid').jqGrid({pager: '#pager', ...});

jqGrid 不仅附加到#mygrid 和#pager,而且还创建新的兄弟姐妹和容器。

<div id="gbox_mygrid">
   <div class="ui-jqgrid-view">
      <table id="mygrid"><!-- rows --></table>
   </div>
   <div id="#pager"><!-- stuff --> <?div>
</div>

所以你看到 jqGrid 做了它必须做的事情,运行良好。我认为这取决于插件的需求。

于 2013-03-12T07:22:40.460 回答
1

一般来说,我希望开发人员只提供容器元素以及任何必要的内部元素(想想滑块中的图像)。我希望插件能够生成任何控件,如按钮、分页等。

要求开发人员提供容器元素可以让他们完全控制插件在页面上出现的方式、时间和位置,就好像它只是另一个 div 一样。要求他们也提供任何必要的内容并不总是必要的,因为这很容易成为一个配置项。

我看到让用户提供 HTML 的主要好处是在处理不支持/允许 JavaScript 的客户端时(想想旧的浏览器、蜘蛛等)。至少他们会看到您的插件要显示的内容相关的内容,而不仅仅是一个丑陋的空白区域。在滑块示例中,如果处理得当,插件可以在缺少 JavaScript 支持的情况下优雅地降级为静态图像。

控件和状态显示等所有错综复杂的内容都应始终由插件生成。为什么?用户友好性是首先想到的。人们使用 jQuery 插件是因为他们想要快速、相对轻松地解决问题。此外,jQuery 插件的许多用户不是 Web 开发人员,而通常只是博客等的管理员。

通过消除插件用户必须创建他们真正无法控制的元素的需要,您还消除了由拼写错误、误解和缺乏 RTFMing 引起的许多麻烦。

希望我的意见和见解对您有所帮助。

于 2013-03-12T07:26:28.863 回答