首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JQuery -将.on与元素插入一起使用

JQuery -将.on与元素插入一起使用
EN

Stack Overflow用户
提问于 2012-05-22 09:02:34
回答 2查看 102关注 0票数 6

我有一个为特定对象创建工具提示的函数。目前,我正在ajax插入之后运行一个工具提示函数来创建和附加新的工具提示对象。我很好奇是否有一种方法可以使用.on()在插入时自动运行工具提示函数,而不是手动运行它。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
 $('[title]').on('inserted', function(){
     tooltip(this);
 });

我做了一些阅读,看起来自定义触发器可能是可行的,但我希望它存在这样的东西:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 08:13:15

以下是根据请求生成的代码。

代码语言:javascript
代码运行次数:0
运行
复制
$(document).ready(function() {
    $('body').on('added','*',function() {
        console.log($(this),'has been added');
    });
    $('body').append('<div>This is the first div</div>');
});

(function($) {
    fncs = {
        append:$.fn.append,
        appendTo:$.fn.appendTo
        // etc.
    }
    // we're assigning the original functions in this
    // object to be executed (applied) later
    $.fn.append = function() {
        fncs.append.apply(this,arguments);
        $(this).children().last().trigger('added');
        return $(this);
    }
    $.fn.appendTo = function() {
        fncs.appendTo.apply(this,arguments);
        return $(this);
        // no need to trigger because this function calls the one
        // above for some reason, and it's taking care of the
        // triggering the right element(s I think)
    }
})(jQuery);
票数 1
EN

Stack Overflow用户

发布于 2012-05-22 09:40:01

这不是您想要的响应,但我不会将工具提示直接附加到元素上。相反,对于希望工具提示在鼠标悬停时显示的对象,我将使用一个类,并按以下方式使用.on()事件处理程序:

代码语言:javascript
代码运行次数:0
运行
复制
$('body').on('mouseover','.tooltip',function() {
    // show tooltip
    console.log($(this).data('tooltip'));
    return false;
}).on('mouseout','.tooltip',function() {
    // hide tooltip
    return false;
});

因此,您添加到主体中的任何内容(不一定是直接的子级)都将触发此事件处理程序。

我可能只会创建一个额外的函数,将工具提示数据与类一起分配给每个元素。

代码语言:javascript
代码运行次数:0
运行
复制
$.fn.extend({
    tooltip:function(text) {
        text = text || '';
        return $(this).each(function() {
            $(this).data('tooltip',text).addClass('tooltip');
        });
    }
});

$('#someID').tooltip("Click me!");
$('button').tooltip("I'm a button");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10694557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档