jquery - jQuery 插件中的异常处理

标签 jquery plugins

处理 jQuery 插件误用的最佳方法是什么——忽略或抛出错误?在我正在处理的情况下,我有一个将某些功能绑定(bind)到图像的插件。绑定(bind)后,你可以通过方法做一些其他的事情,例如设置或获取可以通过客户端交互更改的状态信息,例如:

$('selector').myPlugin();
$('selector').myPlugin('some-method',data);

在以下情况下应该做什么:

  • 选择器不包含相关元素(怀疑答案是,什么都没有,没有错误)
  • 仅与先前绑定(bind)的元素相关的方法应用于没有相关元素的选择器
  • 方法包含无效参数数据

我觉得在某些情况下我应该做正确的事情,我只是忽略任何无效或不适用的内容并继续无错误。 “jQuery 方式”的一个重要部分是尽可能以可预测的方式行事,这对我来说意味着,除非必要,否则不要破坏。

另一方面,这使得调试变得更加困难,因为在执行不应该执行的操作时不会出现任何错误。有时这可能是合理的(例如,将插件应用于仅与子集相关的一组元素)。另一方面,尝试将特定方法应用于不相关的元素或传递错误的参数数据等操作,从长远来看可能会导致忽略错误带来更多麻烦。

这方面有什么传统智慧吗?添加“忽略错误”选项?

最佳答案

在第 1 点上,如果您遵循本页上的模式 http://docs.jquery.com/Plugins/Authoring ,你正在做正确的事。即这个:

var methods = { init : function( options ) {

   return this.each(function(){

在第 3 条中,忽略您不使用的参数名称。当他们在您的参数之一中使用错误数据时引发异常。我相信这将停止选择器中匹配项目的所有处理。您还可以提供一个 Debug模式,它将抛出异常。这样他们就可以在测试期间将其打开,并在投入生产时将其关闭。

关于第 2 点,我很想说按照您从第 3 点所说的内容中挑选的内容进行操作。如果类似于获取与未调用 setXXXX 的元素关联的数据,则只需返回一个空数据集。

关于jquery - jQuery 插件中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966248/

相关文章:

javascript - 为什么此站点在注册点击事件时遇到问题?

java - 使用 UI 创建 Android Studio 插件

wordpress - 用于页面编辑的最佳 WordPress 插件?

javascript - jQuery 在粘贴之前重写复制的文本

jquery - 动画 div 显示/隐藏 (jQuery)

ajax - Django 不允许使用奇怪的方法

javascript - 为什么单个基于 JQuery 的内容 slider 不适合我? (bxSlider,js中的逗号)

ruby-on-rails - 如何在 rails 中扩展 I18n.translate 方法?

plugins - Sublime Text 2 中的 Pylint

java - 创建用于 Sonar 分析的自定义规则 java