манипулирование вложенными данными 2

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

Быстрый пример (я использую jQuery просто для демонстрационных целей).

<p class="element" onclick="doSomething();">Click me</p>
<p class="element" onclick="doSomething();">Click me</p>
<p class="element" onclick="doSomething();">Click me</p>
<p class="element" onclick="doSomething();">Click me</p>
<p class="element" onclick="doSomething();">Click me</p>
<p class="element" onclick="doSomething();">Click me</p>

Что делать, если вдруг вы получите запрос на изменение всех своих абзацев для выполнения другой функции? В вашем примере вам придется изменить все вручную в своем HTML-коде. Однако, если вы решите отделить HTML от JavaScript, вы можете просто сделать это следующим образом.

<p class="element">Click me</p>
<p class="element">Click me</p>
<p class="element">Click me</p>
<p class="element">Click me</p>
<p class="element">Click me</p>
<p class="element">Click me</p>

$('.element').bind('click', doSomethingElse);

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

EDIT: пример для моего комментария ниже.

Project = {
    // All the variables/constants/objects that need to be globally accessible inside the Project object.

    init : function(){
        // Main entry point...
        this.MainMenu.init();

        // Rest of the code which should execute the moment Project is initiated.
    }
}

Project.MainMenu = {
    // All the variables/constants/objects that need to be accessible only to MainMenu.

    init : function(){ // Is run immediatelly by Project.init()
        // Event handlers relevant to the main menu are bound here

        // Rest of the initialization code
    }
}

Project.SlideShow = {
    // All the variables/constants/objects that need to be accessible only to SlideShow.

    init : function(){ // Is run only on pages that really require it.
        // Event handlers for the slideshow.
    }
}
0
задан Alessandro 4 March 2019 в 16:43
поделиться

1 ответ

Это должно сработать. Обратите внимание, что имена столбцов с пробелами в них немного изменены («Product cat.» На «Product.cat.» И т. Д.)

df <- df %>%
      mutate(Product.cat. = case_when(nchar(Product.cat.) == 1 ~ paste0(Product.cat.,'mm'),
                                nchar(Product.cat.) == 2 ~ paste0(Product.cat.,'m'),
                                TRUE ~ Product.cat.))
0
ответ дан camnesia 4 March 2019 в 16:43
поделиться
Другие вопросы по тегам:

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