jQuery测试DOM元素是否支持;“加载”;事件

jQuery测试DOM元素是否支持;“加载”;事件,jquery,Jquery,是否可以检查jQuery对象是否支持为特定事件触发事件处理程序?我有一个接受DOM元素的函数,我想使用以下方法来监听元素中的“加载”淡入淡出: element.css({ opacity: 0.0 }); element.bind('load', function() { $(this).animate({ opacity: 1.0 }); }); 不幸的是,如果传入的元素不是图像(因为它始终是透明的),则此操作将失败。谢谢 jQuery可以将'load'事件绑定到任何DOM元素(jQuery

是否可以检查jQuery对象是否支持为特定事件触发事件处理程序?我有一个接受DOM元素的函数,我想使用以下方法来监听元素中的“加载”淡入淡出:

element.css({ opacity: 0.0 });
element.bind('load', function() { $(this).animate({ opacity: 1.0 }); });

不幸的是,如果传入的元素不是图像(因为它始终是透明的),则此操作将失败。谢谢

jQuery可以将
'load'
事件绑定到任何DOM元素(
jQuery可以将
'load'
事件绑定到任何DOM元素(
),因为我的评论似乎是一个可以接受的途径,下面是一个更完整的答案:

由于您的函数似乎只有在传递的元素是图像时才起作用,因此只需测试传递的元素是否是图像:

function conditional(element) {
    if(element.tagName == "IMG") {
        element.css({ opacity: 0.0 }).bind('load', function() { $(this).animate({opacity: 1.0 }); });
    }
}

由于我的评论似乎是一条可以接受的路线,这里有一个更完整的答案:

由于您的函数似乎只有在传递的元素是图像时才起作用,因此只需测试传递的元素是否是图像:

function conditional(element) {
    if(element.tagName == "IMG") {
        element.css({ opacity: 0.0 }).bind('load', function() { $(this).animate({opacity: 1.0 }); });
    }
}

我不想问显而易见的问题,但你不能简单地测试一下传入的对象是否是映像,如果是,就绑定你的加载事件吗?听起来你的函数作为一个整体只有在它是映像的情况下才能工作。@Adam做这个测试的最佳方法是什么?请看我下面的帖子。我希望它能有所帮助!
if(element.is('img')){element.load(函数(){…});}
我建议重新编写您的问题,询问它是否支持绑定而不触发事件。我被派来这里是为了寻找触发。我不想问显而易见的问题,但您不能简单地测试传入的对象是否是映像,如果是,则绑定您的加载事件吗?听起来您的函数作为一个整体可能只有在它是映像时才能工作。@adam做这个测试最好的方法是什么?请看我下面的帖子。我希望它能有所帮助!
if(element.is('img')){element.load(function(){…});}
我建议重新编写你的问题,询问它是否支持绑定而不触发事件。我被派到这里来寻找触发。