Совсем старый вопрос, но сегодня у меня такая же проблема. Чистое решение, которое я нашел, - использовать концепцию currying.
Код для этого:
someObj.addEventListener('click', some_function(someVar));
var some_function = function(someVar) {
return function curried_func(e) {
// do something here
}
}
Вызывая функцию curried, вы можете вызовите Object.removeEventListener, чтобы отменить регистрацию eventListener в более позднее время выполнения.
<span>
встроенный элемент. Термин выступ бессмыслен, если Вы не говорите об абзаце (который обычно означает элемент блока). Можно, конечно, изменить поля на <p>
или <div>
или любой другой элемент блока для избавлений от дополнительного вертикального пространства между абзацами.
можно хотеть что-то как display: run-in
, где тег станет или блоком или встроит в зависимости от контекста... к сожалению, это еще универсально поддерживается браузерами .