我正在创建一个自定义jQuery插件,以在输入框上方添加一些图像。高亮类工作正常,但是我需要.toggle()上的选择器的帮助来显示和隐藏INPUTBANNER类。

jQuery.fn.inputmenu = function() {
    function createInputMenu(node) {
        $(node).bind('focus', function() {
            $(this).parent().toggleClass('highlight');

            //SHOW INPUTBANNER CLASS
            $(this).parent().('.inputbanner').toggle();
        });
        $(node).bind('blur', function() {
            $(this).parent().toggleClass('highlight');

            //HIDE INPUTBANNER CLASS
            $(this).parent().('.inputbanner').toggle();
        });
        $(node).parent().append('<div class="inputbanner">some images here</div>');
    }
    return this.each(function() {
        createInputMenu(this);
    });
};

最佳答案

这似乎就是您所追求的,您不必回到父级,然后再回到.inputbanner进行选择,因为inputbanner是同级的,您可以这样做:

// use .prev() if the element is before
$(this).next('.inputbanner')


另外请注意,您应该像这样包装您的插件(以便与$标识符没有冲突)

(function($) {
    $.fn.inputmenu = function() {
        // plugin implementation here
    }
})(jQuery);

08-05 09:45