С приведенным ниже кодом для скрипта Tampermonkey, я уверен, что если возвращаемое значение равно -1
(как и по умолчанию, учитывая пример ниже), тогда не должно быть никакого Qtip.
Однако этот код по-прежнему создает Qtips для элементов, которые в противном случае были бы дефолтными с текстовым значением -1
. Может кто-нибудь объяснить, почему это происходит?Qtip все еще выполняется, хотя я не прошу об этом?
// 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()
должен полностью удалить теги, но при необходимости я могу добавить теги еще раз.
Спасибо!
Спасибо Брок. Не могли бы вы прояснить некоторые вещи? Лучше ли фильтровать в вызывающем цикле из-за производительности или просто стиля (или обоих?). Почему оператор 'if' использует' this' вместо '$ (this)'? Кроме того, как любопытство, знаете ли вы, почему я видел «-1» в qtip? Благодаря! – Vasu
Оба. Кроме того, другим людям (или вам, через шесть месяцев) известно, что это за цель. ... «это» для производительности. В этом случае вы ничего не получаете с помощью '$ (this)'. ... Также вы не должны повторять '$ (this)' как это. Установите его в переменную и используйте это. ... В Qtip вы должны увидеть -1, но за ним должен быть HTML, не обязательно видимый. Это не '== -1', поэтому вы не можете использовать это для' if() 'check. –
Получил, спасибо. – Vasu