jquery - 插件不响应操作 :hover

标签 jquery css

我的插件有一堆这样的代码:

var element = $("*[data-label]");
(function ($) {
    $.fn.Label = function (options) {
        var label = $(this).attr("data-label"),
            d = document.createElement('span'),
            t = document.createTextNode(label),
            config = $.extend({
            display: 'inline',
            position: 'absolute',
            top: '6.5em',
            padding: '0.5em',
            backgroundColor: '#383838',
            color: 'white',
            fontSize: '0.8em',
            opacity: '0.9',
        }, options);
        if (element.is(":hover")) {
            d.className = "labelShow";
            $(this).append(d);
            $('.labelShow').append(t).css(config);
        } else {
            $(".labelShow").remove();
            return false;
        }
    };

}(jQuery));

element.Label();

我在控制台中没有错误,当我悬停要响应我的小部件代码的元素时,调试器没有捕获任何事件。你能告诉我为什么它不起作用吗?

最佳答案

尝试

(function ($) {
    $.fn.Label = function (options) {
        //create a shared css def for the label
        var css = $.extend({
            display: 'inline',
            position: 'absolute',
            top: '6.5em',
            padding: '0.5em',
            backgroundColor: '#383838',
            color: 'white',
            fontSize: '0.8em',
            opacity: '0.9'
        }, options);

        //append the label span to each element in the jquery element set on which the plugin was initialized
        this.append(function () {
            return $('<span />', {
                text: $(this).data('label'),
                'class': 'labelShow'
            }).css(css).hide();
        //register mouser enter and mouse leave events for each of the elements so that the label can be displayed or hidden
        }).hover(function () {
            $(this).find('.labelShow').show();
        }, function () {
            $(this).find('.labelShow').hide();
        });
    };

})(jQuery);

var element = $("*[data-label]");
element.Label();

演示:Fiddle

关于jquery - 插件不响应操作 :hover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19617606/

相关文章:

javascript - &lt;input type ="file"/> 点击表单域部分时在FireFox3中打开文件浏览窗口?

Jquery Css无法高亮输入类型按钮标签文本onclick单选按钮

jquery - 当粘性: true?时,如何通过ajax回调设置crudetop工具提示的标题

javascript - Jquery 只获取一个动态输入值而不是多个

javascript - HighChart Stacked Column 标签问题

css - 元素上的径向框阴影

javascript - 隐藏标签不可见

html - 垂直对齐 img 奇怪的行为

javascript - jQuery 返回空白页的数据表初始化

javascript - 提交表单而不刷新页面