1
function classChanger(path,changeClass,duration){
    $(path).removeClass(changeClass);
    $(this).addClass(changeClass);
)};

$('.flightDetails .option').classChanger('.flightDetails .option','selected',300);

我正在尝试创建可重用的功能。控制台日志:TypeError: $(".flightDetails .option").classChanger is not a function

感谢您的帮助和时间:)

4

1 回答 1

5

你必须classChanger在 jQuery 原型上声明你的:

$.fn.classChanger = function(path, changeClass, duration) {
    $(path).removeClass(changeClass);
    return this.addClass(changeClass);
};

有关更多信息,请阅读jQuery 插件创作指南


更新:正如评论中所指出的,如果您打算path和选择器始终相同,您应该path完全放弃,而只使用this自始至终。

由于您没有确切指定您要做什么,我假设您要删除该类,然后等待duration指定然后重新添加该类。如果是这种情况,这里有一些示例代码:

$.fn.classChanger = function(changeClass, duration) {
    var $this = this;

    setTimeout(function() {
        $this.addClass(changeClass);
    }, duration);

    return this.removeClass(changeClass);
};

$('.flightDetails .option').classChanger('selected', 300);

这是小提琴:http: //jsfiddle.net/ur7SN/

于 2012-07-27T16:24:01.463 回答