묻고답하기
위젯 스킨 제작 중입니다. 그런데 제이쿼리가 적용이 잘 안되네요.(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
-
이온디
2015.01.02 18:16
-
이온디
2015.01.02 18:18
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();
}); -
이온디
2015.01.02 18:26
var $account = $('.account');
를 먼저 정의해주지 않아서 그런 거였군요 ㅠ
var $acWarning = $account.find('.warning');
이 부분을 지워주면 되네요. ㅠㅠㅠ