Помогите создать функцию для функции javascript и jquery - PullRequest
0 голосов
/ 22 апреля 2011

Итак, у меня есть эти функции внутри функции (документа) .ready:

$(document).ready(function () {
    $("#border_button").click(function () {
        var value = $("#border-radius").attr("value");
        $("div.editable").click(function (e) {
            e.stopPropagation();
            showUser(value, '2', this.id)
            $(this).css({
                "-webkit-border-radius": value
            });
        });
    });
});

Я хочу иметь возможность написать функцию с параметрами, которые будут:

(#border_button,#border_radius,2,-webkit-border-radius)

Но каждый раз, когда я пишу функцию и выполняю ее functionName (параметры), я получаю сообщение об ошибке "Undefined"

Кто-нибудь знает, как написать для этого функцию, которая не будет возвращать undefined?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Вы не создаете функцию, которую можно вызывать вручную где-либо.

Если вы говорите о совершенно другой функции: вам необходимо передать аргументы в виде строк, то есть заключить в кавычки ' или ":

someFunction('#border_button', '#border_radius', 2, '-webkit-border-radius');

Чтобы сделать текущий код вызываемым как функцию:

function fooBar(selector, fieldSelector, num, cssRule) {
    $(selector).click(function(e) {
        var value = $(fieldSelector).val();
        $('div.editable').click(function(e) {
            e.stopPropagation();
            showUser(value, num, this.id)
            $(this).css(cssRule, value);
        });
    });
}

$(document).ready(function() {
    fooBar('#border_button', '#border_radius', 2, '-webkit-border-radius');
});

Обратите внимание, что я изменил .attr('value') на .val(), поскольку это способ jQueryчтобы получить значение поля формы.

0 голосов
/ 22 апреля 2011

Может как то так? Не уверен, почему вы хотите это сделать.

$(document).ready(function(){

    function Fos(buttonSel, inputSel, someValue, cssProperty) {
        $(buttonSel).click(function(){   
            var value = $(inputSel).attr("value");
            $("div.editable").click(function (e) { 

                e.stopPropagation();

                showUser(value, someValue, this.id)
                var css_obj={};
                css_obj[cssProperty]=value;
                $(this).css(css_obj);  
            });        
        });        
    }

    Fos('#border_button', '#border-radius', 2, '-webkit-border-radius');
});        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...