使用下面给出的Tampermonkey脚本代码,我很确定如果返回值是-1
(因为它将默认为,如下面的示例选择),那么应该没有Qtip制作。
但是,此代码仍会在元素上创建Qtips,否则这些元素将默认为文本值-1
。有人可以解释为什么会这样吗?
// headers that work fine
$( function() {
GM_addStyle(GM_getResourceText('qtipCSS'));
var makeConfig = function(jqObject){
var playerName = $(jqObject).text() || -1;
var argumentMsg = '<a href="javascript:openQuickMsgDialog(' + '"' + playerName + '"' + ');" style="font-size:10px; "> [m] </a>'
var argumentBuff = '<a href="javascript:openWindow(' + '"' + 'index.php?cmd=quickbuff&t=' + playerName + '"' + ', \'fsQuickBuff\', 618, 1000, \',scrollbars\');" style="font-size:10px;"> [b] </a>'
var finalText = playerName + '<br/>' + '<div style = "text-align: center; color: white !important;">' + argumentMsg + argumentBuff + '</div>';
var qtipContent = {
overwrite: false,
content: { text: finalText, attr: 'error' },
position: { my: 'bottom center', at: 'top center' },
show: { delay: 200 },
hide: { fixed: true, delay: 200 },
style: { classes: 'qtip-tipsy qtip-shadow' }
}
return qtipContent;
};
$('[href *= "index.php?cmd"]').each(function(){
var config = makeConfig($(this));
if (config.content.text == -1)
return;
else if (config.content.text != -1){
$(this).qtip(config);
}
});
});
正确选择的例子(那应该给我一个球员的名字并且确实如此):
$('[href *= "index.php?cmd"]').eq(1)
[
<a href="index.php?cmd...">NameOfPlayer</a>
]
应该处理为-1的选择示例,然后不会将其创建为工具提示,但不是。
$('[href *= "index.php?cmd"]').eq(0)
[
<a href="index.php?cmd..." data-hasqtip="0">
<img src="someplace">
</a>
]
注意,我已分别删除了<a>
和<img>
标记中的部分内联标记。我不认为这应该扮演任何角色,因为$(string).text()
应该完全删除标签,但如果有必要,我可以再次添加标签。
谢谢!
答案 0 :(得分:1)
finalText
逻辑错误,永远不会只返回-1
。
无论如何,不要以这种方式过滤Qtip。在调用循环中做得更好。改变这个:
$('[href *= "index.php?cmd"]').each(function(){
var config = makeConfig($(this));
if (config.content.text == -1)
return;
else if (config.content.text != -1){
$(this).qtip(config);
}
});
对此:
$('[href *= "index.php?cmd"]').each(function(){
if (this.textContent.trim () ) {
var config = makeConfig ( $(this) );
$(this).qtip(config);
}
});