如上所述,我想知道如何将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()。似乎没有做到这一点
任何帮助表示赞赏!
答案 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);
});
};