검색결과 리스트
Studys-/Web-Jquery에 해당되는 글 6건
- 2016.01.25 [Jquery] ajax json IE 8,9 크로스 브라우저 ..
- 2015.11.19 jquery 화면이동
- 2015.11.19 jquery 플러그인 만들기 및 사용하기
- 2015.11.19 Jquery 가상 키보드를 만들어 보자
- 2015.11.19 Jquery 현재시간
- 2015.11.19 Jquery 확인메세지 창 띄우기
글
ajax json 을 사용하다 IE 8,9 버전에서 response 가 안오는 경우가 있다
이때 ajax 의 옵션중에 crossDomain : true 를 선언해 주면된다..
참.. 어 2 GA 없어서.
'Studys- > Web-Jquery' 카테고리의 다른 글
jquery 화면이동 (0) | 2015.11.19 |
---|---|
jquery 플러그인 만들기 및 사용하기 (0) | 2015.11.19 |
Jquery 가상 키보드를 만들어 보자 (0) | 2015.11.19 |
Jquery 현재시간 (0) | 2015.11.19 |
Jquery 확인메세지 창 띄우기 (0) | 2015.11.19 |
글
웹 페이지의 특정 위치로 화면을 이동 시키기
document.location.hash = "";
hash 를 사용하면 현재 페이지 상의 어느 한 지점으로 이동이 가능 합니다..
화면시점이 되고자 하는 테그의 id, class 혹은 selector 형식으을 입력 하시면 되용
'Studys- > Web-Jquery' 카테고리의 다른 글
[Jquery] ajax json IE 8,9 크로스 브라우저 .. (0) | 2016.01.25 |
---|---|
jquery 플러그인 만들기 및 사용하기 (0) | 2015.11.19 |
Jquery 가상 키보드를 만들어 보자 (0) | 2015.11.19 |
Jquery 현재시간 (0) | 2015.11.19 |
Jquery 확인메세지 창 띄우기 (0) | 2015.11.19 |
글
플러그 인 이란?
플러그인은 javascript 를 좀더 쓰기 편하게 하기위해 만들어진 언어 jquery 의 주요 요소중 하나 입니다. javascript 의 몇몇 자주 사용되는 코드들을 손쉽에 이벤트로 선언 하여 사용 할수 있게 해주는 아주 좋은 기능중의 하나 입니다. 허나 이 기능을 쓸줄만 알고 만들줄 모르면.. 그냥 쓰기만 하게 되는 것이죠
이제 그 플러그인을 만드는 것을 알려 드리겠습니다.
기본적으로 플러그인의 구조에 대해 서는 인터넷에 검색하면 이글보다 좋은 글들이 많으니 확인 하시기 바랍니다.
제가 여기에 따로 글을 쓰는 이유는 그 인터넷에 검색 해서 나오는 플러그 인이라는 것들이 막상 어떻게 써야 하는지 막막하게 느껴지지 않도록 하기 위함 입니다.
* 플러그인을 만들 js 파일을 하나 생성 하세요 이름은 알아서..
* $.fn.extend({ }); 우선 이와같이 fn 종속으로 추가를 합니다.
* $.fn.extend({
testevent : function(){ // testevent 는 .event() 입니다.
alert("test");
}
});
js 상에서
* $(document).ready(function(){
$(this).testevent(); // 생성한 testevent 를 호출 합니다.
});
형식으로 사용 하면 해당 testevent를 사용 할 수 있습니다.
* 참고로 이와 같이 플러그인 참조를 선언해 줘야 합니다.
(저의 플러그인 파일 명은 jquery.test.js 입니다.)
<script type ="text/javascript" src="jquery.test.js"></script>
위와 같은 구조로 코딩 하였다면 응용을 해보겟습니다.
플러그인또한 어찌 되엇던 jquery 입니다.
그럼 페이지에 속한 jquery 에서 플러그인에 값을 전달하기 위해서는 .event ( value) 를 넣어주면 됩니다.
* $.fn.extend({
testevent : function(id,val){ // 2개의 값을 받습니다. id 와 val 값을 받습니다.
alert("test");
}
});
js 에서는
* $(document).ready(function(){
var testid = "#test";
var testval ="테스트";
$(this).testevent( testid, testval); // 2가지의 값을 전달합니다.
});
플러그인에서 2가지 값을 받기 때문에 js 에서도 2가지 전달해 줘야 합니다...
testevent 가 호출 되면 해당 값을 전달하며 해당 이벤트에서 처리를 진행 하게 됩니다.
* 참고로 플러그인 내 에서는 this 를 사용하게 되면 jquery 를 부르게 됩니다 . 해서
클라이언트측의 this 를 전달하고자 한다면 js 에서 this.~~ 를 사용해 플러그인 으로 해당 값만 던져 주어 사용할수 있습니다.
* 한가지 주의 사항은 플러근의 제작 목적은 어디에서나 값을 넣어주면 사용 할 수 있게 하기위함이기 때문에 특정 위치에 특정 코드 형태로 사용 할 경우 플러그인 사용이 불가능 하게 됩니다.
따라서 코드 통합 작업이 필요 하게 되며 이는 플러그인을 만드는 것보다 더 어려운 작업이 될 수도 있습니다.
저의 경우는 코드 통합보다 플러그인 제작에 어려움을 느꼈습니다.
예제로 이전 포스팅에서 사용한 스크롤 이벤트를 플러그인으로 만들었습니다.
* js
$(window).scroll(function () {
option = $("input[id='optiononoff']").is(":checked"); 체크 박스 on off 여부
classname = ".notic";
$(".notic").scrollevent(classname, option, this.scrollY, 387, 40, 140); // 플러그인 호출
//ID , 옵션 여부, this.scrollY,기본높이, 이전div높이, 변경된div높이
});
* 플러그인
$.fn.extend({
scrollevent: function (id, checkonoff, scrolly, baseheight, point1, point2) {
if (checkonoff == false) {
if (scrollY >= baseheight - point1) { // 전
$(id).css("position", "fixed");
$(id).css("top", point1 + "px");
}
else if (scrollY < baseheight - point1) { // 후
$(id).css("position", "absolute");
$(id).css("top", baseheight + "px");
}
}
else if (checkonoff) {
if (scrollY >= baseheight - point2) { // 전
$(id).css("position", "fixed");
$(id).css("top", point2 + "px");
}
else if (scrollY < baseheight - point2) { // 후
$(id).css("position", "absolute");
$(id).css("top", baseheight + "px");
}
}
}
});
'Studys- > Web-Jquery' 카테고리의 다른 글
[Jquery] ajax json IE 8,9 크로스 브라우저 .. (0) | 2016.01.25 |
---|---|
jquery 화면이동 (0) | 2015.11.19 |
Jquery 가상 키보드를 만들어 보자 (0) | 2015.11.19 |
Jquery 현재시간 (0) | 2015.11.19 |
Jquery 확인메세지 창 띄우기 (0) | 2015.11.19 |
글
1. 영문 소문자, 영문 대문자, 숫자, 특수문자 값을 입력할수 있어야 한다.
2. 키 입력시 버튼 배열이 섞여야 한다.
3. table, div 두 환경에 적용 할수 있어야 한다.
4. 바인드 하는 키보드의 가로 개수를 수정할수 있어야 한다.
위 조건이며 암호화 기준이나 한글 입력 등 기능은에 대해서는 언급이 없었으므로 제외
허나 한글 입력 기능은 확장할수도 있을거 같아 확장 할수 있겠만들어 두었다..
허나 한글이 들어 갈 경우 문자열을 합치는 기능을 추가해 줘야 하는대.. 나는모르겠다 ㅋ
하루 만에 만들거라 코드가 상당히 더러우니 양해 해 주시기 바랍니다. ㅠ
/*
--옵션 및 사용 방법
--일부 옵션을 제외 하고 선언하여도 기본값으로 적용은 되나 아래
--bindPosition, bindinput 의 경우 없을경우 제대로 동작을 하지 않습니다.
--LeeHeeSam 2015.10.06 // 가상키보드
$('a[act=loadkeyboard]').on('click', function (e) {
e.preventDefault();
var options = {
'bindType': 'Table',//바인드 종류 (키보드가 바인드 될 Tabe , Div)
'bindPosition': '#table tbody', // 바인드 위치 (키 보드 바인드 위치)
'bindinput': '#pw' //바인드 (텍스트 바인드할 input , textarea )
}
$('#table').show().VirtualKeyBoard(options);
*/
(function ($) {
$.fn.VirtualKeyBoard = function (options) {
var bindType;
var $select;
var defaultSetting = {
'language': 'English', // EnglishCapital, Number
'value': 0, // 0 기본 1 shift
'bindType': 'Table',// Div Table
'bindPosition': '', // 바인드 위치
'bindLow': 5, // 줄 표현 수
'bindinput': '' //바인드 input select
}
var KeyBoardSetting = {
'language': options.language == undefined || options.language == '' ? defaultSetting.language : options.language,
'value': options.value == undefined || options.value == '' ? defaultSetting.value : options.value,
'bindType': options.bindType == undefined || options.bindType == '' ? defaultSetting.bindType : options.bindType,
'bindPosition': options.bindPosition == undefined || options.bindPosition == '' ? defaultSetting.bindPosition : options.bindPosition,
'bindLow': options.bindLow == undefined || options.bindLow == '' ? defaultSetting.bindLow : options.bindLow,
'bindinput': options.bindinput == undefined || options.bindinput == '' ? defaultSetting.bindinput : options.bindinput
}, keyboard = { // 한글 추가시 확장해야함
"Number": [
["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"],
["!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "<", ">", "?", "`", "-", "=", ",", ".", "/", "~"]
]
, "English": [
["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"],
["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
]
}
bindKeyBoard();
function bindKeyBoard() {
if (KeyBoardSetting.language == "Number") {
bindType = keyboard.Number[KeyBoardSetting.value];
} else { // 한글 추가시 확장
bindType = keyboard.English[KeyBoardSetting.value];
}
// Random
for (var i = 0; i <= bindType.length - 1; i++) {
var random = Math.floor(Math.random() * bindType.length)
random = random >= 0 ? random : 0;
var t = bindType[i]
var s = bindType[random];
bindType[random] = t;
bindType[i] = s;
}
//Makehtml
var html = "";
for (var i = 0; i <= bindType.length - 1; i++) {
if (KeyBoardSetting.bindType == 'Table') {
if ((i % (KeyBoardSetting.bindLow - 1)) == 0 && i != 0) {
html += "</tr>";
}
if ((i % (KeyBoardSetting.bindLow - 1)) == 0) {
html += "<tr>";
}
html += "<td><span class='button'><a href='' act='button'>" + bindType[i] + "</a></span></td> ";
} else if (KeyBoardSetting.bindType == 'Div') {
if ((i % (KeyBoardSetting.bindLow - 1)) == 0 && i != 0) {
html += "</ul>";
}
if ((i % (KeyBoardSetting.bindLow - 1)) == 0) {
html += "<ul>";
}
html += "<li><span class='button'><a href='' act='button'>" + bindType[i] + "</a></span></li> ";
};
};
KeyBoardSetting.bindType == 'Table' ? html += "</tr>" : html += "</ul>";
//MakeSettingOption
if (KeyBoardSetting.bindType == 'Table') {
KeyBoardSetting.value == 0 ? html += "<tr><td><span class='button'><a href='' act='SettingVal' data-value='1'>▲</a></td>" : html += "<tr><td><span class='button'><a href='' act='SettingVal' data-value='0'>▽</a></td>";
KeyBoardSetting.language == 'Number' ? html += "<td><span class='button'><a href='' act='SettingLanguage' data-language='English'>ABC</a></td></tr>" : html += "<td><span class='button'><a href='' act='SettingLanguage' data-language='Number'>123/기호</a></td></tr>";
} else if (KeyBoardSetting.bindType == 'Div') {
KeyBoardSetting.value == 0 ? html += "<ul><li><span class='button'><a href='' act='SettingVal' data-value='1'>▲</a></li>" : html += "<ul><li><span class='button'><a href='' act='SettingVal' data-value='0'>▽</a></li>";
KeyBoardSetting.language == 'Number' ? html += "<li><span class='button'><a href='' act='SettingLanguage' data-language='English'>ABC</a></li></ul>" : html += "<li><span class='button'><a href='' act='SettingLanguage' data-language='Number'>123/기호</a></li></ul>";
}
//BindHtml
$(KeyBoardSetting.bindPosition).empty();
$(KeyBoardSetting.bindPosition).html(html);
KeyBoardSetting.bindType == 'Table' ? $select = $('tr td a[act]', KeyBoardSetting.bindPosition) : $select = $('ul li a[act]', KeyBoardSetting.bindPosition)
//ClickEvent
$select.on('click', function (e) {
e.preventDefault();
var act = $(this).attr('act');
if (act == 'button') { //번호 클릭 // 한글 추가시 확장해줘야함
$(KeyBoardSetting.bindinput).val(($(KeyBoardSetting.bindinput).val() + $(this).text()))
bindKeyBoard();
} else if (act == 'SettingVal') {
KeyBoardSetting.value = Number($(this).attr('data-value'));
bindKeyBoard();
} else if (act == 'SettingLanguage') {
KeyBoardSetting.language = $(this).attr('data-language');
bindKeyBoard();
}
});
};
}
}(jQuery));
코드에 문제가 있을경우 덧글로 남겨주세요.
사용하시길때 덧글 남겨주세요..
'Studys- > Web-Jquery' 카테고리의 다른 글
[Jquery] ajax json IE 8,9 크로스 브라우저 .. (0) | 2016.01.25 |
---|---|
jquery 화면이동 (0) | 2015.11.19 |
jquery 플러그인 만들기 및 사용하기 (0) | 2015.11.19 |
Jquery 현재시간 (0) | 2015.11.19 |
Jquery 확인메세지 창 띄우기 (0) | 2015.11.19 |
글
Jquery 의 현재 시간을 가져오는 방법 입니다.
var Now = new Date(); // Tue Oct 20 2015 10:48:49 GMT+0900 (대한민국 표준시) 라고 표시됩니다.
Now.getFullYear(); // 년도
Now.getMonth(); // 월 // 월 단위의 경우 0부터 시작되기 때문에 +1 을 해줘야 됩니다.
Now.getDate(); // 일
Now.getHours(); // 시
Now.getMinutes(); // 분
Now.getSeconds(); // 초
근대 년도, 월, 일 ,시, 분,초 형식으로 출력하고 싶으시다..
ex )
var Now = new Date();
var NowTime = Now.getFullYear();
NowTime += '-' + Now.getMonth() + 1 ;
NowTime += '-' + Now.getDate();
NowTime += ' ' + Now.getHours();
NowTime += ':' + Now.getMinutes();
NowTime += ':' + Now.getSeconds();
결과) 2015-10-20 10:05:20
추가 수정 -- 2016.03.14
월 의 마지막 일 을 구하기
var Now = (new Date(2015,2,0)).getDate();
결과) 28
특정 일수 이전 날짜 구하기
var Now= new Date(2016,1, 2 - 30) // 기입 월은 1 이지만 계산은 2월로 계산합니다.
Now.getFullYear() + "-" + (Now.getMonth() +1 ) + "-" + Now.getDate()
결과 ) 2016-1-3
참고사항 2016년은 윤년이기 때문에 2월달이 29일 까지 있어요~
응용 ) 오늘 날짜 기준 -31 일
var ToDay = new Date()
var y = new Date(ToDay.getFullYear(),ToDay.getMonth(),ToDay.getDate() - 31)
y.getFullYear() + "-" + (y.getMonth() +1 ) + "-" + y.getDate()
결과 ) 2016-2-12
참고사항 년,월,일 을 뽑게되면 월단위가 한자리가 나오게 됩니다. 일단위도 똑같죠
한자리의 수 일 경우 앞에 0 을 붙여 주고 싶으시면 삼항 연산자로 처리하시면 되요
다른 좋은 방법이 있으면 덧글로 남겨 주세요
var ToDay = new Date()
var y = new Date(ToDay.getFullYear(),ToDay.getMonth(),ToDay.getDate() - 34)
y.getFullYear() + "-" + (y.getMonth() +1 < 10? "0" + (y.getMonth() +1): y.getMonth() +1 ) + "-" +
(y.getDate() < 10? "0" + y.getDate(): y.getDate())
결과)2016-02-09
'Studys- > Web-Jquery' 카테고리의 다른 글
[Jquery] ajax json IE 8,9 크로스 브라우저 .. (0) | 2016.01.25 |
---|---|
jquery 화면이동 (0) | 2015.11.19 |
jquery 플러그인 만들기 및 사용하기 (0) | 2015.11.19 |
Jquery 가상 키보드를 만들어 보자 (0) | 2015.11.19 |
Jquery 확인메세지 창 띄우기 (0) | 2015.11.19 |
글
Jquery 에는 alert 이외의 메세지 팝업창 종류가 많이 있습니다.
해서 띄울수 있는 밥도 여러가지 있지만 제가 주로 사용하는 방법은 confirm 이라는 함수를 사용하여
메세지를 띄우고 사용자의 선택값에 때라 결과 값을 리턴 받게 되며 해당 정보로 참인지 거짓인지를 분별합니다.
confirm() 함수를 사용하는것 자체는 간단합니다.
if(confirm('본인 인증후 이용하실수 있습니다. 본인 인증을 하시겠습니까?')){
location.href = 'url';
}else{
alert('싫으면 시집가');
}
참 쉽죠?
근대 문제가 있습니다.
바로 바로...
팝업창 차단기능이 작동중일때 사용자에게 어떠한 선택지를 보여주어
해당 결과값으로 이벤트가 데이터 처리가 진행되는 구조라면
사용자가 팝업차단 중일 경우 해당 이벤트에 관련된 작업들은 일체 처리가 불가능하게 됩니다.
사용자 브라우저의 팝업차단기능이 활성화 되어 있을경우 confirm 함수를 사용하여 메세지를 바인딩하고 사용자 선택으로 결과 값을 리턴받는 일련의 과정이 없기 때문에 값은 전부 false 로 떨어지게 됩니다..
각 브라우져별 팝업창 차단여부에 관한 세팅값 변경이 가능하므로 구글링을 통하여 찾아보시기 바랍니다.
이상 허접한 글을 봐주셔서 감사합니다.
해당 글에 문제가 있을경우 쪽지나 비밀 덧글로 알려주세요
'Studys- > Web-Jquery' 카테고리의 다른 글
[Jquery] ajax json IE 8,9 크로스 브라우저 .. (0) | 2016.01.25 |
---|---|
jquery 화면이동 (0) | 2015.11.19 |
jquery 플러그인 만들기 및 사용하기 (0) | 2015.11.19 |
Jquery 가상 키보드를 만들어 보자 (0) | 2015.11.19 |
Jquery 현재시간 (0) | 2015.11.19 |
RECENT COMMENT