无法使用带语法高亮显示的工具提示

时间:2012-09-25 04:53:01

标签: javascript jquery html

工具提示和语法高亮显示器正在自行开发,但是当我把我想要突出显示的代码放在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上时,它应该是描述。

2 个答案:

答案 0 :(得分:0)

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

修改

相当多的代码错误和建议的改进。

首先,您的})鼠标悬停位于代码块的末尾,而不是鼠标悬停结束时。基本上你的鼠标在你的mourseover内。

当您分割单词时,您创建了子span标记,因此鼠标悬停选择器需要检查这些标记。

第三,你的if语句没有{}。这意味着如果你在if中输入了超过1行代码,它就会破坏(不是错误,而不是最佳实践)。

第四,因为你正在使用Jquery为什么不使用$(this)得到这个词?

最后,在比较字符串时,您可能不知道它是“假”还是“假”,并且案例很重要,因此将其转换为小写并比较最佳结果,除非您故意只想要假。

$(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();
      }
   });

});

答案 1 :(得分:0)

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