2016-08-03 2 views
0

Ich versuche einige Elemente zu verstecken, wenn eine Seite geladen wird.Ausblenden bestimmter Elemente onload oder ready oder page: ändern, wenn ausgewählte Tags einen bestimmten Wert haben

Momentan verwende ich 'page:change', weil ich in Ruby on Rails mit Turbolinks arbeite.

Wenn das div ein select-Tag mit einem bestimmten Wert enthält, möchte ich einige Elemente ausblenden.
Die Seite kann mehrere dieser Auswahl-Tags enthalten, daher kann ich keine IDs verwenden.

-Code hier nicht funktioniert:

$(document).on('page:change', function(){ 

    if ($('.q_type_select').val() == 'text' || $('.q_type_select').val() == 'area') { 
      $(this).closest('.question_fieldset').children('.choice_fieldset').hide(); 
      $(this).closest('.question_fieldset').children('.add_fields').hide(); 
     }; 
}; 

Ich denke, dass $(this) funktioniert nur, wenn Sie klicken?

Wenn ich dies tun:

$(document).on('page:change', function(){ 

    if ($('.q_type_select').val() == 'text' || $('.q_type_select').val() == 'area') { 
      $('.question_fieldset').children('.choice_fieldset').hide(); 
      $('.question_fieldset').children('.add_fields').hide(); 
     }; 
}; 

ich alle Elemente erhalten, die diese Klasse zu verbergen haben und nicht die, die ich will.

Irgendwelche Vorschläge?

+0

nur verwenden .ready –

+0

Mögliche $ (document) Duplikat [Rails 4 : Wie man $ (document) .ready() mit Turbo-Links verwendet] (http://stackoverflow.com/questions/18770517/rails-4-how-to-use-document-ready-with-turbo-links) –

+0

Wie soll das die Frage beantworten? Ich frage das nicht, bitte lesen Sie die Frage. – aleherzko

Antwort

1

Angenommen, was auch immer Sie dort haben, ist richtig (da es kein HTML zu suchen). Versuchen Sie, diese

$(function(){ 
    $('.q_type_select').each(function(){ 
    var $this = $(this); 
    if ($this.val() == 'text' || $this.val() == 'area') { 
     $this.closest('.question_fieldset').children('.choice_fieldset').hide(); 
     $this.closest('.question_fieldset').children('.add_fields').hide(); 

    }; 
    }) 
}); 

Schleife durch das gesamte Element (.q_type_select) in der Seite auf Dokument-Ready-Funktion und hide() es

+0

Funktioniert genau so, wie ich es erwartet habe Vielen Dank. Wusste nicht, dass es eine' jede' Methode hier gab, schön. – aleherzko

+1

Sniped nochmal, haha. – dlsso

+0

@aleherzko welcome.Happy coding. – bipen

Verwandte Themen