Je les following code:Javascript flou-cliquez pas travailler ensemble
HTML:
<input type='text' class='a' />
<div class='inst' tag='a'></div>
<input type='text' class='b' />
<div class='inst' tag='b'></div>
<input type='text' class='c' />
<div class='inst' tag='c'></div>
JS:
$(function() {
$('.inst').click(function() {
alert($(this).attr('tag') + ' clicked');
});
$('[type=text]').focus(function() {
show_inst($(this).attr('class'));
}).blur(function() {
//hide_inst($(this).attr('class'));
});
function show_inst(tag) {
$('div.inst[tag=' + tag + ']').html(tag + ' instructions');
}
function hide_inst(tag) {
$('div.inst[tag=' + tag + ']').html('');
}
});
CSS:
.inst {
width: 200px;
height: 100px;
border: 1px solid black;
margin: 10px;
cursor: pointer;
}
Il fonctionne très bien: quand inst
est cliqué Je vois le message d'alerte, et quand l'entrée devient focalisée l'instruction apparaît.
Maintenant je veux que l'instruction non pertinente disparaisse sur le flou. J'ai donc essayé d'ajouter la ligne commentée à l'intérieur blur()
. Cela ne fonctionne pas comme ça parce que blur()
est appelé en premier et supprime l'instruction, donc si je clique sur l'instruction - rien ne se passe.
Comment pourrais-je résoudre ce problème?
L'instruction doit donc rester dans la div lorsque vous cliquez dessus et lorsque vous cliquez sur autre chose, l'instruction doit disparaître? – Fabian
oui. Quelle est la meilleure façon de mettre en œuvre cela? –