У меня есть следующий html:
<p>This is some random text in a paragraph with a <span class="blue">blue</span> word.</p>
<p>This is some random text in a paragraph with a <span class="blue">blue</span> <i>word</i>.</p>
<p>This is some random text in a paragraph with a <span class="blue">blue</span> <span class="blue">word</span>.</p>
Мой CSS выглядит следующим образом:
.blue{
color:blue;
}
.popup{
background-color:lightblue;
}
И, наконец, мой JS:
var popup = false;
$(".blue").click(function(){
if (!popup){
$(this).after("<div class='popup'>This is some popup text</div>");
popup = true;
}
else{
$(".popup").remove();
popup = false;
}
});
Теперь моя проблема, когда я вызываю функцию remove во всплывающем классе, она удаляет пробелы между тегами Как объясняется в некоторых ответах ниже, функция after также может вызывать это. , например:
<span class="blue">blue</span> <i>word</i>
становится
<span class="blue">blue</span><i>word</i>
Это не происходит, когда текст, следующий за синим классом, отсутствует в тегах, например:
<span class="blue">blue</span> word
Почему это происходит и как я могу его предотвратить?
Для дополнительной информации здесь приведен скрипт: http://jsfiddle.net/6fqDq/
Изменить: похоже, эта проблема локализована в Chrome, поскольку она не встречается в FF или IE.