2013-09-12 4 views
-2

У меня есть моя главная страница, содержащая DIV, которая в свою очередь содержит IFRAME. Когда пользователь нажимает кнопку OK в IFRAME, я вызываю функцию на родительской странице, которая исчезает из div с помощью команды JQuery fadeOut. Когда я пытаюсь снова затушить DIV, это не так. Что я делаю не так?JQuery fadeout of item, item не появляется

ОСНОВНЫЕ РНР СТР:

<div id="regcontainer"> 
    <iframe id="registration" src="register.html" frameborder="0" allowtransparency="true" scrolling="auto"></iframe> 
</div> 

Jquery КОМАНДЫ В JS файл включен на главной странице, ЧТО приглушить DIV:

var closeIFrame = function() { 
    $('#regcontainer').fadeOut("fast"); 
} 

Fade In:

$('#register').click(function() { $('#regcontainer').fadeIn("fast"); }); 
+4

Не показывая, что именно вы делаете, чтобы выцветанию в div. – raina77ow

+3

..... есть ли какой-нибудь код, чтобы он снова исчезал? Вы можете попробовать '.fadeToggle (« fast »)', если вы хотите этого поведения – MLeFevre

+0

Пожалуйста, предоставьте jsFiddle, если это возможно, так как ваш код является неполным –

ответ

0

Вы должны использовать метод fadeIn. http://api.jquery.com/fadeIn/

var showIFrame = function() { 
    $('#regcontainer').fadeIn("fast"); 
} 
+0

Это мой код fadeIn: \t $ ('# register'). Click (function() { \t \t $ ('# regcontainer'). FadeIn ("fast"); \t}); Только DIV (#regcontainer) исчезает, но iframe не появляется снова. – user2729463

+0

@ user2729463 - добавьте это к вашему вопросу. – j08691

0

Вы должны использовать fadeToggle(), чтобы сделать ваш div переключить его состояние. Также я думаю, вы можете использовать fadeIn() тоже, но так как вы хотите сделать, чтобы ваш div появился и исчез сразу, fadeToggle() - лучший выбор.

http://api.jquery.com/category/effects/fading/ это должно предоставить всю информацию вам нужно

+0

Я начал с переключения, но он имел тот же эффект. Возвращается только DIV, а не iFrame. – user2729463

+0

Просто дикая догадка, возможно, атрибут 'allowtransparency' может вызвать некоторые проблемы. –

+0

Пробовал это только сейчас. Все равно никаких изменений. – user2729463

0

Может быть что-то вроде этого, вот Fiddle

<a href="#" class="register-open">Register</a> 

<div id="regcontainer"> 
    <iframe id="registration" src="http://fiddle.jshell.net/user/login/" frameborder="0" allowtransparency="true" scrolling="auto"> 
    </iframe> 
    <a href="#" class="register-close">Close</a> 
</div> 


$(function() { 

    $('.register-open').click(function() { 
    $('#regcontainer').slideToggle(450); 
    }); 
    $('.register-close').click(function() { 
    $('#regcontainer').slideToggle(450); 
    }); 

}); 
0

Вы не можете использовать fadeToggle(), если кнопка ОК находится внутри DIV, который выведении , так как вы не можете нажать его потом.

Я считаю, что вы ищете что-то вроде этого:

HTML

<div id="regcontainer"> 
    <div class="button"></div> 
</div> 
<div class="button2"></div> 

JQuery

$('.button').on('click', function() { 
    $('#regcontainer').fadeOut('fast'); 
}) 

$('.button2').on('click', function() { 
    $('#regcontainer').fadeIn('fast'); 
}) 

JSFiddle

+0

В вашем примере вы создали и управляли кнопкой CLOSE за пределами HTML-страницы, загруженной внутри iframe.Это делает кнопку CLOSE неуправляемой, поскольку она не прокручивается вместе с лаконированной страницей. В моем случае jQuery для закрытия загруженной страницы находится на этой странице, а не снаружи. Все остальное почти такое же, как в вашем примере, но когда я пытаюсь показать страницу снова, появляется только iframe, а не содержимое. Это похоже на то, что внешняя страница HTML никогда не загружается. – user2729463