Закройте элемент При нажатии в любую точку на странице

У меня есть элемент на моей странице, включенную и выключенную, нажав на текстовую ссылку. Мне также нужен элемент, чтобы скрыть, когда пользователь нажимает в любом месте на странице за пределами самого элемента - это мой код jQuery - может кто-то, пожалуйста, покажешь мне какие модификации, чтобы сделать то, что мне нужно?

$(function() {
$("#header-translate ul li").click(function() {
    $("#header-translate li ul").toggle("slide", { direction: "up" }, 500); 
});
});
-121 1607873- Никогда не заканчивающийся «подключение» сообщение после AJAX Form Отправьте У меня есть класс, который позволяет образуться с входом типа файла, который должен быть представлен через AJAX. Он создает скрытую элемент IFrame, изменяет свойство целевого значения формы, чтобы он представлял его к IFRAME, утверждает ...

У меня есть класс, который позволяет образуться с входом типа файла, который должен быть представлен через AJAX. Он создает скрытую IFRAME элемент , изменяет форму цели свойство , чтобы он представлял в Iframe , представляет форму, затем меняет цель назад к тому, что было. Это также добавляет событие для IFRame , чтобы я мог получить обратный вызов. Функция onload также удаляет IFrame с страницы, прежде чем стрелять в мою функцию обратного вызова.

Класс работает отлично, я получаю обратный вызов, как ожидалось. На чистой панели Firebug я вижу запрос, я вижу ответ, все хорошо. Но, как только отправка запускается, вкладка браузера для страницы изменяется в «подключении» с загрузкой спиннера и никогда не меняется назад. Это заставляет вкладку кажутся загрузкой, это будет включаться в течение дней , если я оставляю браузер открыть.

The never-ending "Connecting" message that plagues me

Вопрос, то, тогда: Есть ли для меня, чтобы я мог остановить это вручную, или есть какой-то другой способ, которым я могу предотвратить его от начала?

вот заголовки ответа, как приняты в Чистая панель:

Date    Fri, 02 Sep 2011 15:23:15 GMT
Server  Apache/2.2.10 (Win32) PHP/5.3.1
X-Powered-By    PHP/5.3.1
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Set-Cookie  PHPSESSID=agncdnha86mtci7dmuvriobak2; path=/
Content-Length  165
Keep-Alive  timeout=5, max=100
Connection  Keep-Alive
Content-Type    text/html

и захват чистой панели ниже. Пост из представления формы, GET вызван функцией обратного вызова, она изменяет источник изображения на странице.

Screenshot of Firebug's Net panel

Это не специфично для этой страницы, это происходит где угодно, я использую эту технику для отправки файла / изображения через Iframe . Это влияет на мою текущую версию Firefox (6.0), но также затронуло предыдущие версии (5.x, 4.x, 3.x). Тот факт, что IFrame удаляется со страницы после того, как она нагрузки делает это особенно сбитым, даже если запрос никогда не заканчивается, удаление элемента должен эффективно убивать / остановить и «подключить», что браузер считает, что происходит.

Обновление Для ответа от @sidnipple я добавил тайм-аут к функции обратного вызова для внедрения задержки в удалении элемента элемента. Я экспериментировал с длиной задержки, даже задержка на 1 мс адекватна. Это, безусловно, квалифицируется как работа, но я все равно хотел бы знать, может ли кто-нибудь пролить свет на почему , предпочтительно, что приводит к избежанию использования тайм-аута. Я включил модифицированный код (с таймаутом) ниже, если это полезно. Это onload событие для IFRame ( IO US Ссылка на элемент кадра):

        var obj={};
        var success = true;
        try{
            obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
            obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
        }
        catch(e){ success = false; }
        if( success ){
            this.fireEvent('onSuccess', obj.responseText );
        }else{
            this.fireEvent('onFailure', obj );
        }
        this.fireEvent('onComplete', obj );
        io.removeEvent('load', uploadCallback );
        setTimeout(function () { // <--- this timeout prevents the issue
            io.dispose();
        }, 1);
8
задан genesis 6 September 2011 в 19:05
поделиться