У меня есть элемент на моей странице, включенную и выключенную, нажав на текстовую ссылку. Мне также нужен элемент, чтобы скрыть, когда пользователь нажимает в любом месте на странице за пределами самого элемента - это мой код jQuery - может кто-то, пожалуйста, покажешь мне какие модификации, чтобы сделать то, что мне нужно?
$(function() {
$("#header-translate ul li").click(function() {
$("#header-translate li ul").toggle("slide", { direction: "up" }, 500);
});
});
-121 1607873- У меня есть класс, который позволяет образуться с входом типа файла, который должен быть представлен через AJAX. Он создает скрытую IFRAME
элемент , изменяет форму цели
свойство , чтобы он представлял в Iframe
, представляет форму, затем меняет цель назад к тому, что было. Это также добавляет событие
для IFRame
, чтобы я мог получить обратный вызов. Функция onload
также удаляет IFrame
с страницы, прежде чем стрелять в мою функцию обратного вызова.
Класс работает отлично, я получаю обратный вызов, как ожидалось. На чистой панели Firebug я вижу запрос, я вижу ответ, все хорошо. Но, как только отправка запускается, вкладка браузера для страницы изменяется в «подключении» с загрузкой спиннера и никогда не меняется назад. Это заставляет вкладку кажутся загрузкой, это будет включаться в течение дней , если я оставляю браузер открыть.
Вопрос, то, тогда: Есть ли для меня, чтобы я мог остановить это вручную, или есть какой-то другой способ, которым я могу предотвратить его от начала?
вот заголовки ответа, как приняты в Чистая панель:
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 вызван функцией обратного вызова, она изменяет источник изображения на странице.
Это не специфично для этой страницы, это происходит где угодно, я использую эту технику для отправки файла / изображения через 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);