[Javascript] Mancata aggiunta di una classe al click

andreadb91

Nuovo Utente
20 Giu 2013
19
0
1
Salve

non riesco a capire perchè (nonostante che in altri popup vada tutto bene) quando clicco per chiudere questo popup specifico non mi aggiunge la class (dbaprta-hidden) ma se cambio il nome della classe me lo aggiunge


HTML:
<div class="dbaprta-show-style" id="dbaprta-show-style" data-column="<?php echo $column . '-' . $row; ?>">
<div class="dbaprta-sub-cell dbaprta-hidden" id="dbaprta-sub-cell-<?php echo $column . '-' . $row; ?>">
<div class="dbaprta-overlay-col">
<div class="dbaprta-modal-content">
<div class="dbaprta-modal-header">
<div class="dbaprta-title"><?php _e('Edit Row Text', $this->plugin_name); ?></div>
<div class="dbaprta-close"><span class="dashicons dashicons-no" data-column="<?php echo $column . '-' . $row; ?>"></span></div>
</div>
<div class="dbaprta-modal-body">

.....
</div>
</div>
</div>
</div>
</div>

Codice:
// Show style popup
$('.dbaprta-tabs-content').on('click','#dbaprta-show-style[data-column]',[B]function[/B](){
[B]var[/B] column = $([B]this[/B]).attr('data-column');
$('#dbaprta-sub-cell-'+ column).removeClass('dbaprta-hidden');
});
// Close style popup
$('.dbaprta-tabs-content').on('click','#dbaprta-show-style .dashicons[data-column]',[B]function[/B](){
[B]var[/B] column = $([B]this[/B]).attr('data-column');
$('#dbaprta-sub-cell-'+ column).addClass('dbaprta-hidden');
});
 
Ciao, in realtà la classe la aggiunge ma viene subito tolta dal primo onclick.
Se metti un alert() in entrambe le funzioni noterai che quando clicchi sulla dashicons richiami anche la prima funzione che effettua il removeClass.
Questo perchè i div sono annidati e l'evento click si scatena per entrambi.
 

Discussioni simili