Почему неанонимные функции выполняют при использовании обработчика события Click?

Если у вас есть индекс месяца, вы можете просто создать свой собственный фильтр:

myApp.filter('monthName', [function() {
    return function (monthNumber) { //1 = January
        var monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June',
            'July', 'August', 'September', 'October', 'November', 'December' ];
        return monthNames[monthNumber - 1];
    }
}]);

Тогда в вашем шаблоне:

{{date_expression | monthName}}
8
задан Braiam 12 August 2014 в 21:38
поделиться

2 ответа

Вы оцениваете свою функцию еще до того, как передадите ее.

$("button").click(bclick("Button","Clicked"));

Здесь bclick вызывается с этими аргументами, а результат передается методу click . Вы хотите передать его как обычную переменную, например так:

$("button").click(bclick);

Однако очевидная проблема заключается в том, что вы не можете передавать пользовательские аргументы.

Вы также можете передать анонимную функцию, которая вызывает ваша функция:

$("button").click(function() { bclick("Button", "Clicked"); });
19
ответ дан 5 December 2019 в 08:00
поделиться

Как сказал musicfreak. Однако, если вы хотите быть действительно хитрым и использовать имеющийся у вас код, вам просто нужно добавить return this в конец вашей функции bclick.

1
ответ дан 5 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: