我写过插件,以突出显示用于查找页面。来源是也可用

我的问题是,如果你查看第一个链接的内联JavaScript,我已经创建了一个自定义textPlacement函数来处理显示条的插入(它看起来有点像Stack Overflow)。

如您所见,我在插入的按钮上有一个事件处理程序。我编写了删除栏的编码,但我也想删除条款的突出显示。该插件有一个执行此操作的方法,称为 toggleTermHighlighting()

如何从示例页面上的匿名函数内部调用该方法?我是否需要将其设为 this.toggleTermHighlighting = function(){} 。我已经尝试将其中的一个实例传递给第一个参数,但无法使其工作。

抱歉,我似乎总是在JavaScript中使用范围很难。

有没有人知道我能做什么才能从示例页面的匿名函数中访问该方法?

有帮助吗?

解决方案

我认为如果你重新调整了插件中定义函数的方式,它会变得相当容易。

从以下地址更改第128行:

var toggleTermHighlighting = function() {

为:

this.toggleTermHighlighting = function() {

然后你可以做这样的事情从一个完全不同的范围访问这个功能:

var myPlug = new $.fn.searchTermsHighlight();
myPlug.toggleTermHighlighting();

这将是您的问题的答案,但我认为不同的方法可能更合适。如果你看一下很多jQuery UI代码,你可以将一个字符串传递给插件,它会为你执行一个函数。所以你实际上可以做类似的事情:

$('body').searchTermsHighlight('toggle');

然后只需在函数顶部或init()类型函数

中检查它
if (options === 'toggle'){ toggleTermHighlighting(); return this; }

其他提示

你将不得不制作“toggleTermHighlighting”。一个公开的jQuery函数本身,或者将其功能作为现有方法的一个选项公开。好吧,如果你想做一些有点奇怪的事情,你可以将函数(以及你喜欢的任何东西)填充到受影响对象的数据元素中(参见jQuery“data”函数)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top