如何将jQuery live()函数应用于此代码?

时间:2010-02-24 12:08:36

标签: javascript jquery ajax

如上所述,我想知道如何将live()函数应用于此代码。

此代码将通过javascript:

插入
<a class="link" href="url"><span>This content is hidden</span></a>  

这是需要生效的JavaScript:

$('.link').append('<span class="hover"></span>').each(function () {
      var $span = $('> span.hover', this).css('opacity', 0);
      $(this).hover(function () {
        $span.stop().fadeTo(500, 1);
      }, function () {
        $span.stop().fadeTo(500, 0);
      });
    });

简单添加.live()。似乎没有做到这一点

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

我不确切地知道你要做什么,但我做了这个假设: 你正在添加一个“a”标签,然后想要添加一个“跨度”,当它悬停时,会有这些事件。

这不是“实时”,我假设您知道何时添加“a”标记。当你这样做时,只需调用AddEvents函数来执行追加,给孩子一些CSS,然后将“悬停”应用于新添加的孩子。 这样的事情应该有用,而不是花哨,但应该有效:

function AddEvents()
{
    $('.link').append('<span class="hover"></span>');
    var $span = $('.link span.hover');
    $span.css('opacity', 0);
    $span.hover(function()
    {
        this.stop().fadeTo(500, 1);
    }, function()
    {
        $span.stop().fadeTo(500, 0);
    });
};

// call the function when needed
AddEvents();

注意:如果你知道新添加的'a'上下文,你可以通过AddEvents()传递它;函数调用,并在这样工作:

AddEvents($(this));//or the selector for that 'a' link

function AddEvents(scopeItem)
{
    scopeItem.append('<span class="hover"></span>');
    var $span = $('span.hover', scopeItem);
    $span.css('opacity', 0);
    $span.hover(function()
    {
        this.stop().fadeTo(500, 1);
    }, function()
    {
        $span.stop().fadeTo(500, 0);
    });
};