-1

工具提示和语法高亮是自己工作的,但是当我将要高亮的代码放在 pre 标记中时。只有语法突出显示有效,工具提示无效。我尝试了SyntaxHighlighter js.Highlighter .Tooltip 仍然不起作用。我正在使用来自simpletooltip的工具提示 有人可以指导我做什么吗?我应该更改工具提示还是更改语法突出显示。我应该使用哪个工具提示或语法突出显示?

<pre><code class = "python"> 
<p id = "filecontents" class="word_split">False None True False go the way False</p>
</code></pre>

$(document).ready(function(){
$(".word_split").lettering('words');
$('.word_split').mouseover(function(event) {
var word=event.target.innerHTML;
if (word == "False")
   showToolTip('False','False keyword',event);
$('.word_split').mouseout(function(event) {
var word=event.target.innerHTML;
if (word == "False")
   hideToolTip();
});
});
});

我正在使用letteringplugin来检测单词。每次鼠标悬停在单词 False 上时,它应该是一个描述。

4

2 回答 2

0

听起来像是命名冲突。请继续阅读.noConflict()http://api.jquery.com/jQuery.noConflict/这是因为两者都使用 $ 符号。您需要使用 jQuery 之类的别名或其他任何库,这样一个库就不会与另一个库发生冲突。当大量使用库时,这必然会发生。熟悉 noConflict 与仅仅切换 lib 是一个好主意。

编辑

大量的代码错误和建议的改进。

首先 Your })for Mouseover 位于代码块的末尾,而不是鼠标悬停的末尾。基本上你的鼠标在你的鼠标中。

其次,当您拆分创建子span标签的单词时,您的鼠标悬停选择器需要检查这些。

第三,您的 if 语句没有{}. 这意味着如果您在 if 中使用了超过 1 行代码,它就会中断(没有错,只是不是最佳实践)。

第四,既然您使用的是 Jquery,为什么不使用这个词$(this)呢?

最后,在比较字符串时,您可能不知道它是“false”还是“False”,并且大小写很重要,因此要隐藏为小写并比较以获得最佳结果,除非您故意只想要 False。

$(document).ready(function(){

    $("#demo2 h1").lettering('words');

    $('.word_split span').mouseover(function(event) {
        var word = $(this).text().toLowerCase();
        if (word == "False".toLowerCase()){
           showToolTip('False','False keyword',event);
        }
    });
    $('.word_split span').mouseout(function(event) {
      var word=$(this).text().toLowerCase();
      if (word == "False".toLowerCase()){
         hideToolTip();
      }
   });

});
于 2012-09-25T05:29:53.217 回答
0

我使用了不同的工具提示(Qtip)来解决问题。

于 2012-10-02T21:21:41.400 回答