在Greasemonkey中使用jQuery插件(例如tipsy)

3

我正在尝试(并且大部分情况下都成功了)在我的Greasemonkey脚本中使用tipsy jQuery插件。我使用@require元标记导入jquery和tipsy js,并且它可以工作,但是有一些限制,我正在努力克服。

访问元素作为纯jQuery对象会失败,因此我只能使用DOM函数来获取我的元素:

//this fails
$('#login').find('a:first').tipsy(); 

//while this succeeds
$(document.getElementById('login').getElementsByTagName('a')[0]).tipsy();

有人知道为什么吗?需要更多信息吗?谢谢!

1个回答

5

我认为这是因为在Greasemonkey中,jQuery的默认上下文与文档不同。请尝试以下代码:

$("#login", document).find('a:first').tipsy();

出于好奇,考虑到jQuery上下文选择器的工作方式,使用$(document).find('#login a:first').tipsy();会更快吗? - David Thomas
考虑到我选择的对象数量很少(几乎只有一把手),两种方法之间的性能甚至无法分辨,但在基准测试情况下值得检查。 - Brandon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接