Bonjour,
Sur cette portion de page vous voyez des blocks de codes disposants chacun d'un bouton permettant de sélectionner le texte.
Mon problème c'est que les boutons sélectionnent tous le dernier block, et non pas leur block adjacent.
Voici mon code jQuery :
Le plugin, ce n'est pas moi qui l'ai codé, je l'ai trouvé sur stackoverflow. Je me suis dis que mon problème pouvait provenir de this[0], mais je n'arrive pas à adapter le truc afin qu'il sélectionne le block adjacent au bouton.
Merci de votre aide.
Sur cette portion de page vous voyez des blocks de codes disposants chacun d'un bouton permettant de sélectionner le texte.
Mon problème c'est que les boutons sélectionnent tous le dernier block, et non pas leur block adjacent.
Voici mon code jQuery :
jQuery.fn.selectText = function(){
var element = this[0],
doc = document.body;
if (doc.createTextRange) {
range = doc.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
jQuery('pre code').each(function(){ // Création du bouton de commande
var code = $(this);
code.parent().css('position', 'relative')
.prepend('<button class="button select">Select</button>');
var button = $('.select');
button.css({ //@todo À mettre dans la feuille de style ?
'position': 'absolute',
'z-index': '100',
'right': '0',
'width': 'inherit', // contrebalance une règle css par défaut
'font-size': '50%'
});
button.on('click', function(){ // Fonction du bouton
code.selectText();
});
});
Le plugin, ce n'est pas moi qui l'ai codé, je l'ai trouvé sur stackoverflow. Je me suis dis que mon problème pouvait provenir de this[0], mais je n'arrive pas à adapter le truc afin qu'il sélectionne le block adjacent au bouton.
Merci de votre aide.