Ого, это было сложнее, чем ожидалось ... Короче говоря, я отредактировал вашу скрипку: Здесь , и теперь она работает.
Редактировать: новая скрипка, которая использует распространение событияболее аккуратно: http://jsfiddle.net/RYwsy/23/
Точка 3 была довольно простой.Если вы хотите, чтобы контент поступал откуда-то на странице, найдите его на основе какого-либо свойства ссылки, на которую вы нажали, или контекста, в котором он находится (например, посмотрите на его братьев и сестер или что-то в этом роде).В моем примере я просто добавил атрибут id к ссылке и использовал его для определения скрытого элемента div, который содержит контент, и вставил его во всплывающее окно.
Точка 2 была более хитрой.Сначала я просто прикрепил обработчик кликов ко всему, кроме всплывающего окна, и спрятал там всплывающее окно.Это не сработало, потому что события щелчка во всплывающем окне распространялись вверх по домену и в конце концов достигли некоторого элемента, скрывшего всплывающее окно.Затем я добавил проверку, щелкаем ли мы по всплывающему окну, и, если это так, остановим распространение там.
Вопрос о том, является ли это самым чистым решением, вероятно, весьма спорен, но он довольно чистый и, если не сказать большехороший пример того, почему вам нужно понимать распространение событий в javascript: -)