Je crée un formulaire de connexion qui est envoyé avec le plugin ajax.form de jQuery. Les effets fonctionnent, la soumission fonctionne. Mais quand vous les mettez ensemble, ils ne fonctionnent pas ...soumission de formulaire jQuery/amélioration des effets?
Ceci est pour le moteur d'expression, donc les balises {if} ne sont que des conditions d'EE. Voir que le contenu change une fois que l'utilisateur est connecté - J'ai juste besoin de recharger le contenu pour que le contenu change - Je pense qu'il serait plus facile de faire un tas de réécritures .html() ... Une fois le formulaire est soumis, le contenu correct est rechargé et est cliquable, mais le "#panel" ne sera pas ré-animé.
<div id="client-login">
<div class="wrap">
<p class="work-message">We're doing some work under the hood! If things get/are funky, please excuse us!</p>
{if logged_out}
<div id="client" class="login">Client Login</div>
{/if}
{if logged_in}
<div id="client" class="login">Hey, {username}!</div>
{/if}
</div>
</div>
<div id="panel">
<div id="panel-content" class="wrap">
{if logged_out}
{exp:member:login_form id="login-form"}
<ul>
<li>
<label><span>Username</span></label>
<input type="text" name="username" value="" maxlength="32" class="input" size="25" />
</li>
<li>
<label><span>Password</span></label>
<input type="password" name="password" value="" maxlength="32" class="input" size="25" />
</li>
<li class="login-forgot">
<a href="{path='member/forgot_password'}">Forgot your password?</a>
</li>
{if auto_login}
<li class="checkbox">
<input class='checkbox' type='checkbox' name='auto_login' value='1' /> Auto-login on future visits
</li>
{/if}
</ul>
<p>
<input type="submit" id="panelsubmit" name="submit" value="Submit" />
</p>
{/exp:member:login_form}
{/if}
<div id="messages">
<p></p>
</div>
{if logged_in}
<div id="logout">
<h2>What do ya wanna' do?!</h2>
<form id="login-form" >
<input type="hidden" name="ACT" value="10" />
<input type="submit" value="Log Out" />
</form>
</div>
{/if}
$(document).ready(function()
{
$('.login').toggle(
function()
{
$('#panel').stop().animate({
height: "150",
padding:"20px 0",
backgroundColor:'rgba(0,0,0,0.8)',
}, 500);
$('#client-login').stop().animate({
backgroundColor:'rgba(0,0,0,0.8)',
}, 500);
},
function()
{
$('#panel').stop().animate({
backgroundColor:'rgba(0,0,0,0.2)',
height: "0",
padding:"0px 0",
}, 500);
$('#client-login').stop().animate({
backgroundColor:'rgba(0,0,0,0.2)',
}, 500);
});
$('#login-form').ajaxForm({
// success identifies the function to invoke when the server response
// has been received; here we apply a fade-in effect to the new content
success: function() {
$("#client").remove().fadeOut("fast");
$("#client-login").load("/ #client-login").fadeIn("fast");
$("#panel-content").remove().fadeOut("fast");
$("#panel").load("/ #panel-content").fadeIn("fast");
}
});
});
La fonctionnalité est essentiellement là, mais la forme doit travailler même après qu'il a présenté comme il le fait avant! En outre, l'animation pour le .remove ne fonctionne pas. Je suis nouveau sur JavaScript et je ne sais pas comment l'améliorer.
Je ne suis pas sûr que ma syntaxe soit correcte. C'est sympa de travailler, mais je dois cliquer deux fois pour initialiser ... Je ne sais pas trop quoi faire! S'il vous plaît excusez mon ignorance! –
Pouvez-vous poster votre syntaxe? –