Расширение плагина jQuery

Возвращаясь к исходному примеру, просто используйте ensym() для преобразования текстовых аргументов в символы, в этом случае нет необходимости в выражении.

library(ggplot2)
col <- "cut"
foo <- function(df, col){
    col <- rlang::sym(col)
    dplyr::mutate(df, !!col := tolower(!!col))
}

foo(diamonds, col)
#> # A tibble: 53,940 x 10
#>    carat cut       color clarity depth table price     x     y     z
#>                   
#>  1 0.23  ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
#>  2 0.21  premium   E     SI1      59.8    61   326  3.89  3.84  2.31
#>  3 0.23  good      E     VS1      56.9    65   327  4.05  4.07  2.31
#>  4 0.290 premium   I     VS2      62.4    58   334  4.2   4.23  2.63
#>  5 0.31  good      J     SI2      63.3    58   335  4.34  4.35  2.75
#>  6 0.24  very good J     VVS2     62.8    57   336  3.94  3.96  2.48
#>  7 0.24  very good I     VVS1     62.3    57   336  3.95  3.98  2.47
#>  8 0.26  very good H     SI1      61.9    55   337  4.07  4.11  2.53
#>  9 0.22  fair      E     VS2      65.1    61   337  3.87  3.78  2.49
#> 10 0.23  very good H     VS1      59.4    61   338  4     4.05  2.39
#> # … with 53,930 more rows

Создано в 2019-03-11 с помощью пакета представитель (v0.2.1) sup>

13
задан Chad Ruppert 16 April 2009 в 18:43
поделиться

2 ответа

РЕДАКТИРОВАТЬ: Как указал Себ, это не является строго примером «расширения» плагина, более «инкапсуляции» 'плагин, так что принимайте его как есть:)

Вот что я сделал, чтобы упростить мое использование плагина автозаполнения jquery некоторое время назад:

// small autocomplete plugin wrapping the full autocomplete plugin for a standard look and feel
(function($) {
    $.fn.standardAutocomplete = function(type) {
        return this.autocomplete(ToAbsoluteUrl("~/System/Autocomplete/" + type), {
            formatItem: formatItem,
            formatResult: formatResult
        });
        // Autocomplete formatting callbacks
        function formatItem(row) { return row[0] + "<span class=\"sub\">" + row[1] + "</span>"; }
        function formatResult(row) { return row[0].replace(/(<.+?>)/gi, ''); }
    }
})(jQuery);

Теперь это не следует "книге" практика кодирования jquery - например, я не учитываю тот факт, что может быть выбрано несколько элементов, но в этом случае я знаю, что никогда не буду выбирать с этим более одного элемента, поэтому я хотел быть простым, и это "работает для меня". Возможно, вам удастся использовать аналогичный подход, возможно, с большей сложностью.

10
ответ дан 2 December 2019 в 00:59
поделиться

Если плагин готов, у вас не так много альтернатив, кроме чем использование его опций для изменения его поведения.

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

Если вам действительно нужно изменить его поведение, то, я думаю, вам нужно скопировать и вставить код.

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

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