1
用下面給出的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);
}
});
});
例正確選擇(這是應該給我一個球員的名字和所做的):應處理爲-1,然後是不是一個選擇的
$('[href *= "index.php?cmd"]').eq(1)
[
<a href="index.php?cmd...">NameOfPlayer</a>
]
例創建爲工具提示,但不是。
$('[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)'?另外,出於好奇,你知道我爲什麼在qtip中看到'-1'嗎?謝謝! – Vasu
兩者。另外,對於其他人(或者你自己,從知道起六個月),他們會更容易弄清楚他們的意圖是什麼。 ...這是表演。在這種情況下,你用'$(this)'得不到任何東西。 ...你也不應該像這樣重複'$(this)'。將其設置爲一個變量並使用它。 ...在Qtip中,你應該看到一個-1,但是它後面應該有HTML,不一定是可見的。這不是'== -1',所以你不能在'if()'檢查中使用它。 –
明白了,謝謝。 – Vasu