gpt4 book ai didi

javascript - 检查 JavaScript 函数是否是 jQuery 元素的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:46:14 24 4
gpt4 key购买 nike

如何检测函数是否是 jQuery 元素的方法?

例如,$.fn.fadeIn 是一个函数:

typeof $.fn.fadeIn === 'function'//true

但是,我需要一种方法来将它与常规的非 jQuery 方法区分开来。目标是能够将函数作为参数传递,然后正确调用该函数。

下面是一个使用名为 doIt 的函数的示例,该函数接受一个 jQuery 元素和一个要应用于该元素的函数。

示例 HTML:

<h1>jQuery Function Test</h1>
<p class=t1>Highlight this line.</p>
<p class=t2>Hide this line.</p>

示例 JavaScript:

function doIt(elem, func) {
if (func === 'a jQuery function') //possible?
func.apply(elem);
else
func(elem);
}

function highlight(elem) {
elem.css('background-color', 'gold');
}

doIt($('p.t1'), highlight);
doIt($('p.t2'), $.fn.fadeOut);

JavaScript 的第 2 行需要帮助。

互动版:

http://jsfiddle.net/sxduwke9/

最佳答案

没有。但是您可以完全删除 if 语句:

function doIt(elem, func) {
func.apply(elem);
}

function highlight() {
this.css('background-color', 'gold');
}

doIt($('p.t1'), highlight);
doIt($('p.t2'), $.fn.fadeOut);

如果你想传递更多参数,这里有一个简单的例子:

function doIt(elem, func) {
var args = Array.prototype.slice.call(arguments, 2);
func.apply(elem, args);
}

function highlight(color) {
this.css('background-color', color);
}

doIt($('p.t1'), highlight, 'gold');
doIt($('p.t2'), $.fn.fadeOut);

关于javascript - 检查 JavaScript 函数是否是 jQuery 元素的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com