2017-10-06 3 views
1

Sur Internet, je vois plein d'exemples utilisant le pseudo-sélecteur :visbile (pour filtrer display:none;).jQuery - Erreur: pseudo non pris en charge: visible

Mais lorsque je tente de l'utiliser jQuery donne une erreur:

Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: visible - jquery.min.js:2


C'est ce que je l'ai fait:

function initSimpleTinyMCE(selector) { 
    console.log(selector+':visible'); // .simple-tinymce:visible 
    tinymce.init({ 
     selector: selector+':visible', 
    }); 
} 

Répondre

2

Si vous utilisez jQuery TinyMCE, vous pouvez l'utiliser comme ceci:

function initSimpleTinyMCE(selector) { 
 
    $(selector+':visible').tinymce({ 
 
    \t // Options 
 
    }); 
 
} 
 

 
initSimpleTinyMCE('.simple-tinymce');
.hidden { 
 
    display:none; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.5.6/tinymce.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.5.6/jquery.tinymce.min.js"></script> 
 

 
<textarea class="simple-tinymce"></textarea> 
 

 
<textarea class="simple-tinymce hidden"></textarea>

0

Vous pouvez utiliser cette façon function initSimpleTinyMCE(selector) { console.log($(selector+':visible'));tinymce.init({selector: $(selector+':visible'),});}

1

minuscule -MCE prend uniquement en charge les sélecteurs CSS. Le pseudo-sélecteur :visible est spécifique à jQuery et ne peut donc pas être utilisé de cette manière. En supposant que vous utilisez jQuery dans votre projet, quelque chose comme ça fonctionnerait:

funciton initSimpleTinyMCE(selector) 
{ 
    var element = jQuery(selector+":visible").first(); //Just in case the selector matches multiple elements. 
    tinymce.init({ 
     target: element[0] 
    }); 
} 

Vous pouvez également mettre en place un contrôle pour vous assurer que le sélecteur correspond à quelque chose dans le dom avant de tenter d'initialiser Tiny-MCE.