묻고답하기
위젯 스킨 제작 중입니다. 그런데 제이쿼리가 적용이 잘 안되네요.(2)
2015.01.02 18:08
소스
<load target="login.css" />
<load target="login.xml" />
<load target="default.login.js" />
<script type="text/javascript">
jQuery(function($){
// Warning
var $acWarning = $account.find('.warning');
$('#keep_signed').click(function(){
alert("{$lang->about_keep_warning}");
});
});
</script>
<form id="fo_login_widget" action="{getUrl('','act','procMemberLogin')}" method="post" ruleset="@login" class="account">
<fieldset id="acField">
<h2>{$lang->cmd_login}</h2>
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="success_return_url" value="{htmlspecialchars(getRequestUriByServerEnviroment(), ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}" />
<input type="hidden" name="xe_validator_id" value="widgets/login_info/skins/default/login_form/1" />
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'widgets/login_info/skins/default/login_form/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div class="idpw">
<div>
<label for="user_id" cond="$member_config->identifier != 'email_address'">{$lang->user_id}</label>
<input name="user_id" id="user_id" type="text" required cond="$member_config->identifier != 'email_address'" />
<label for="user_id" cond="$member_config->identifier == 'email_address'">{$lang->email_address}</label>
<input name="user_id" id="user_id" type="email" required cond="$member_config->identifier == 'email_address'" />
</div>
<div>
<label for="user_pw">{$lang->password}</label>
<input name="password" id="user_pw" type="password" required />
</div>
</div>
<input type="submit" value="{$lang->cmd_login}" />
<p class="keep">
<input type="checkbox" name="keep_signed" id="keep_signed" value="Y" />
<label for="keep_signed">{$lang->keep_signed}</label>
</p>
<p class="warning">{$lang->about_keep_warning}</p>
<ul class="help">
<li><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
</ul>
</fieldset>
</form> |
로그인 위젯 스킨입니다. class="keep"에서 체크박스에 체크하면
경고창이 뜨게끔 하는데요,
저걸 js 파일 안에 넣으면 작동을 하는데, js 파일 안에서는 xe 구문인 {$lang->about_keep_warning} 가 작동을 하지 않아
위젯 html 파일 안에 직접 script 코드 안에 적어주려고 했습니다만,
동작을 안하는데 원인이 뭔지 혹시 알 수 있을까요?
댓글 3
-
js 파일에서는 아래 처럼 사용되었습니다.
var $acWarning ... 이 부분은 왜 쓰인 거죠?;
jQuery(function($){
// Login
// Div unwrap
var $account = $('.account');
$account.unwrap().unwrap();
// Toggle
var $acTog = $('a[href="#acField"]');
var $acField = $('#acField');
$acTog.click(function(){
$this = $(this);
$acField.slideToggle(200, function(){
var $user_id = $(this).find('input[name="user_id"]:eq(0)');
if($user_id.is(':visible')){
$user_id.focus();
} else {
$this.focus();
}
});
return false;
});
// Close
$acField
.append('<button type="button" class="close">2×</button>')
.find('>.close').click(function(){
$(this).closest($acField).slideUp(200, function(){
$acTog.eq(0).focus();
});
return false;
});
// Warning
var $acWarning = $account.find('.warning');
$('#keep_signed').click(function(){
alert("{$lang->about_keep_warning}");
});
// Login Error
$('#fo_login_widget .message').parent($acField).show();
}); -
var $account = $('.account');
를 먼저 정의해주지 않아서 그런 거였군요 ㅠ
var $acWarning = $account.find('.warning');
이 부분을 지워주면 되네요. ㅠㅠㅠ