javascript - "Tooltip"jQuery 插件中断

标签 javascript jquery html css

我正在开发一个非常轻便的“工具提示”jQuery 插件。下面是代码:

(function( $ ) {
  $.fn.tooltip = function() {

    return this.each(function(){

        var target = $(this);

        target.on("mouseover", function(event){
            var tooltip = $(document.createElement("div"));
            tooltip
                .html(target.attr("tooltip-text"))
                .addClass("tooltip")
                .css({
                     "top" : event.pageY, 
                     "left":event.pageX 
                     })
                .fadeIn(300);                               
        }); 

    });

  };
})( jQuery );

我这样应用它:

<script>
    $("div.product").tooltip();
</script>   

想法是当用户将鼠标悬停在光标旁边的 DIV 上时显示工具提示。 但是,当我悬停这样的 DIV(类“产品”)时,脚本在 .addClass("tooltip") 行崩溃:

Uncaught TypeError: Object has no method 'addClass'

我做错了什么?

最佳答案

这是因为您正在分配属性 tooltip-text:

  .html(target.attr("tooltip-text"))

属性是未定义的,所以它搞砸了 jQuery 事件的链接。尝试这样做:

  .html(target.attr("tooltip-text") || "")

你也不需要在 window.onload 中执行,把它放在一个标准的 ready 文档中就可以了。

关于javascript - "Tooltip"jQuery 插件中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376147/

相关文章:

javascript - 使用内联 JavaScript 加密 mailto 电子邮件地址

php - base 64编码表单文件

jquery - 不通过拖放对列表项进行上下排序

jquery - 基于 Web 的代码编辑器插件(用于 Css 和 Less),带有语法高亮

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for 'scrollLeft' in undefined

c# - 从模板创建 PDF

javascript - 如何将普通js函数注册到 Angular 中的@Output

javascript - 多个 Canvas 的 RequestAnimationFrame

javascript - 将 Html 表导出到 Excel - 所有浏览器

javascript - 比 Google Map V3 上的 setTimeout 更好的方法