2016-09-30 4 views
-4

ich die Werte zeigen versuche, basierend auf Kontrollkästchen aktivieren und deaktivierenWie ein- oder ausblenden divs basierend auf Checkbox Änderungsereignis

ich zwei Kontrollkästchen MNC und Worth bekommen haben (nur die Top-Ones), ich bin versucht, zeigen oder die Werte verbergen basierend darauf (pesent unter Klasse Pack-Panel div)

Dies ist mein Code

$(document).on('change', '.filtermnc', function() { 
$(".pack-panel").each(function() { 
    var visible = $(this).find('.mnccheckbox').prop('checked') 
    $(this).toggle(visible); 
    }); 
    }); 


$(document).on('change', '.filterworth', function() { 
$(".pack-panel").each(function() { 
    var visible = $(this).find('.worthcheckbox').prop('checked') 
    $(this).toggle(visible); 
    }); 
    }); 

Wenn ich mit diesem Code versucht, ist es nicht funktioniert und es wird auch überprüft alle entsprechende Checkboxen

Bitte lassen Sie mich wissen, wie Sie dies erreichen können. http://jsfiddle.net/F8Vk2/121/

+0

Warum runter, ich habe versucht, aber es funktioniert nicht wie erwartet. – Pawan

+0

Sie möchten das gesamte Pack-Panel ausblenden, wenn das entsprechende Kontrollkästchen aktiviert ist oder etwas anderes? – depperm

+0

@depperm, basierend auf der oberen Checkbox-Auswahl muss ich die Pack-Panel div's verstecken oder zeigen – Pawan

Antwort

0

Ihre js ändern zu

$(document).on('change', '.filtermnc', function() { 
    var visible = $(this).prop('checked') 
    if(visible) 
     $('.mnccheckbox').closest("li").show(); 
    else 
     $('.mnccheckbox').closest("li").hide(); 
    }); 


$(document).on('change', '.filterworth', function() { 
var visible = $(this).prop('checked') 
    if(visible) 
     $('.worthcheckbox').closest("li").show(); 
    else 
     $('.worthcheckbox').closest("li").hide(); 

    }); 

http://jsfiddle.net/F8Vk2/123/

+0

ist diese Jquery in Ihrer Antwort anders als die OP? – depperm

+0

Was ändern? sieht genau so aus. Erkläre deine Antwort – charlietfl

+0

Sorry, falsche Kopie einfügen. Ich habe meine Antwort aktualisiert. – Ram

0

ich für einen gemacht, aber es ist nur ein mater von den anderen ändert ebenfalls:

$(document).on('change', '.filterworth, .filtermnc', function() { 
    var $this = $(this), 
    isChecked = $this.is(':checked'), 
    $packPanel = $('.pack-panel'); 

    isChecked ? $packPanel.show() : $packPanel.hide() 

}); 

Sie this verwenden könnte um das Ziel des Ereignisses zu ermitteln und zu überprüfen, ob es von .is(':checked') überprüft wird. Außerdem müssen Sie nicht über $('.pack-panel') iterieren, um Ihre Änderungen zu übernehmen. .toggle() wird die Sichtbarkeit durch die vorherige ändern, also denke ich, dass Sie hart Code zum Ausblenden oder Anzeigen der Panels sollten.

+0

dies funktioniert nur für Worth Kontrollkästchen, nicht für MNC Checkbox – Pawan

+0

Bearbeitete es, damit es für beide Checkboxen funktioniert, @UnKnown. –

+0

Ich lief Ihren Code ths ist die Geige http://jsfiddle.net/F8Vk2/126/, aber ich bekomme VM79: 45 Uncaught SyntaxError: Ungültige oder unerwartete Token – Pawan

-1

Sie könnten versuchen ->

$(document).on('change', '.filtermnc', function() { 
    $('.mnccheckbox'). 
    closest("li"). 
    toggle($(this).prop('checked')); 
}); 

Diese im Grunde alle mit .mccheckbox Klasse zu finden, und dann auf dem Grundstück der Checkbox basieren Makel Sie das Ereignis zu übertragen.

+0

Interessant, Gefällt mir nicht. aber es funktioniert trotzdem. Ich habe erklärt, was ich getan habe. usw. Einige Leute hier brauchen ihre Kopfuntersuchung. – Keith

Verwandte Themen