<script src="jquery-1.2.6.js" type="text/javascript"></script>
<script src="jquery.contextmenu.r2.js" type="text/javascript"></script>
<script type="text/javascript">

 $(document).ready(function() {
  $('span.demo1').contextMenu('myMenu1', {
   bindings: {
    'open': function(t) {
     alert('Trigger was '+t.id+'\nAction was Open');
    },
    'email': function(t) {
     alert('Trigger was '+t.id+'\nAction was Email');
    },
    'save': function(t) {
     alert('Trigger was '+t.id+'\nAction was Save');
    },
    'delete': function(t) {
     alert('Trigger was '+t.id+'\nAction was Delete');
    }
   }
  });
 });
  </script>

<div class="contextMenu" id="myMenu1">
<ul>
 <li id="open">Open</li>
 <li id="email">Email</li>
 <li id="save">Save</li>
 <li id="close">Close</li>
</ul>
</div>
    
<span class="demo1" id="quickDemo" style="border: 1px solid #888;">
    <b>DEMO</b> right-click me!!
</span>   


출처 : http://www.trendskitchens.co.nz/jquery/contextmenu/


===================================================================================


페이지 전체 뿐만 아니라 특정 부분에도 손쉽게 마우스 오른쪽 버튼을 막을 수 혹은 핸들링 할 수 있게 해줍니다.

예제 코드:

$(document).ready( function() {

    // Capture right click
    $("#selector").rightClick( function(e) {
        // Do something
    });
    
    // Capture right mouse down
    $("#selector").rightMouseDown( function(e) {
        // Do something
    });
    
    // Capture right mouseup
    $("#selector").rightMouseUp( function(e) {
        // Do something
    });
    
    // Disable context menu on an element
    $("#selector").noContext();

});


출처 - http://blog.naver.com/PostView.nhn?blogId=choiye84&logNo=130108943430


===================================================================================


mousedown

원문 링크  http://api.jquery.com/mousedown/

.mousedown( handler(eventObject) )Returns : jQuery

개요 : "mousedown" JavaScript 이벤트를 바인딩 하거나 특정 요소에 이벤트를 발생시킵니다.

  • .mousedown( handler(eventObject) )
  • handler(eventObject) 이벤트가 발생했을 때 실행될 기능.
  • .mousedown( [eventData], handler(eventObject) )
  • eventData 이벤트 핸들러에 전달할 데이터 집합.
  • handler(eventObject) 이벤트가 발생했을 때 실행될 기능.
  • .mousedown( )

이 함수는 .bind('mousedown', handler) 와 .trigger('mousedown') 를 줄여 표현한 것입니다.

mousedown 이벤트는 마우스 포인터를 요소에 올려놓고 마우스 버튼을 누르면 발생합니다. 어떤 HTML 요소라도 이 이벤트를 받을 수 있습니다.

예를들어:

<div id="target">
  Click here
</div>
<div id="other">
  Trigger the handler
</div>

<div>에 이벤트를 바인딩 하려면 :

$('#target').mousedown(function() {
  alert('Handler for .mousedown() called.');
});

이 요소를 클릭하면 알림창이 나타납니다.

다른 요소를 클릭해서 이벤트를 발생시킬 수도 있습니다.

$('#other').click(function() {
  $('#target').mousedown();
});

위 코드를 추가하고 실행시키면 위와 같은 결과를 볼 수 있습니다.

mousedown 이벤트는 마우스 버튼을 클릭하면 발생합니다. 특정 버튼을 누르면 이벤트는 which 속성을 이용할 수 있게 됩니다. 이 속성은 모든 브라우져에서 지원하지는 않습니다. Internet Explorer 는 대신 button을 사용합니다. 하지만 jQuery 는 어떤 브라우져에서도 안전하게 사용할 수 있도록 표준화를 하였습니다. which 의 값의 의미는 다음과 같습니다. 1 이면 left 버튼, 2 이면 중간 버ensuring튼(휠), 3 이면 오른쪽 버튼을 뜻합니다.

예 제  
마우스의 mouseup 와 mousedown 이벤트 발생을 텍스트로 보여줍니다.

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <p>Press mouse and release here.</p>

<script>
    $("p").mouseup(function(){
      $(this).append('<span style="color:#F00;">Mouse up.</span>');
    }).mousedown(function(){
      $(this).append('<span style="color:#00F;">Mouse down.</span>');
    });

</script>

</body>
</html>

미리보기

글씨 있는 부분을 마우스를 이용해서 클릭해 보세요.

 

마우스 이벤트 감지는 많이 필요한 내용이죠.

그럼 즐프하세요.

※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.


출처 - http://findfun.tistory.com/289


===========================================================================


참고 사이트

http://www.abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/


==================================================================================


j(document).bind("contextmenu", function(e){

        alert("오른쪽마우스금지입니다.");

        return false;

});







'Development > jQuery' 카테고리의 다른 글

jQuery 추천 플러그인  (0) 2012.06.07
jQuery - 선택자  (0) 2012.06.03
jQuery - URL을 파싱  (0) 2012.05.29
jQuery - 플러그인 모음  (0) 2012.05.29
jQuery - Url Parameter 추출  (0) 2012.05.29
Posted by linuxism
,



JSDT란?
JSDT (JavaScript Debug Toolkit)는 IE, Firefox, Safari, Chrome, Opera 등 다양한 Web 브라우저를 지원하는 JavaScript 디버거입니다.  JavaScript 디버거로는 Firefox Addon 인 Firebug가 꾀 유명하지만, 기존의 도구는 특정 Web 브라우저에서만 사용할 수 있는 것이 대부분입니다.

JSDT의 경우는 부가 기능을 설치하지 않고도 JavaScript 디버깅을 할 수 있습니다.
 

링크의 JSDT (JavaScript Development Toolkit)와는 다른 디버깅을 위한 툴입니다.


JSDT의 구조
실제로 JSDT를 실행해보기 전에 JSDT의 동작원리에 대해서 살펴보겠습니다.

JSDT는 HTTP 프록시 서버를 내장하고 있어, 디버깅 웹 브라우저는 HTML및 JavaScript와 같은 리소스를 프록시를 통해 참조하게 됩니다.  이 경우 HTML 및 JavaScript가 프록시에 따라서 JSDT에 디버깅하는데 필요한 JavaScript가 자동으로 포함되게 됩니다. 포함된 JavaScript 코드는 XHR를 통해 디버거 쪽으로 필요한 정보를 전달합니다.
 

이러한 구조가 브라우저 쪽에 특별한 기능을 설치할 필요 없이 다양한 웹 브라우저에서 디버깅을 가능하게 합니다.


JSDT를 사용
JSDT 프로젝트 페이지에서 Swing 스탠드 애플리케이션 및 Eclipse 플러그인을 제공하고 있습니다.
우선 간단하게 사용할 수 있는 Swing 버전을 다운로드하여 사용해 봅니다.  윈도우의 경우 setup.exe 파일을 다운로드 받아 설치하면 다음과 같은 창이 나타납니다.

 

디버깅할 HTML 파일과 웹 브라우저의 실행 파일을 선택하고 시작 버튼을 클릭하고 디버깅을 시작할 수 있습니다.

사용은 일반적인 디버거와 비슷합니다.  디버깅을 시작하면 JSDT의 소스 코드 편집기에 소스코드가 표시되기 때문에, 정지하고자 하는 위치에 중단점(Breakpoint)을 찍고 단계별 스텝 오버, 스텝 아웃을 할 수 있습니다.  변수의 값은 variables 탭에서 확인할 수 있으며, expression 탭에서 임의의 표현식을 등록하고 평가 결과를 볼 수 있습니다.
  
Eclipse 플러그인 버전도 기본적인 사용법은 동일합니다.  다운로드 페이지에서 jsdt – 2.1.0.zip 을 다운로드 하고 적당한 위치에 압축을 푼 후, 업데이트 관리자에서 플러그인을 설치할 수 있습니다.  Eclipse 플러그인 버전에서는 디버거로서의 기능뿐만 아니라, 구문 검사 기능 등을 갖춘 유용한 JavaScript 편집기도 제공되며, JavaScript 편집기에서 임의의 행을 클릭하여 중단점을 설정할 수 있습니다.

Eclipse에서 JavaScript Debugging 모습

JavaScript Debug Configuration 설정 모습



Eclipse 의 웹 작업 영역에서 HTML 파일을 선택하고 마우스 오른쪽 클릭 -> “debug” -> “JavaScript Debug Tool”으로 디버깅을 시작할 수 있습니다.


정리
JSDT는 HTTP 프록시가 디버깅 코드를 삽입하는 방법을 이용하여 브라우저 측에 특수 기능 등을 필요로 하지 않고 사용자 웹 브라우저에서 JavaScript 디버깅을 가능하게 하고 있습니다.  또한 독립 실행형 버전과 Eclipse 플러그인 버전을 제공하고 있으며, 개발 스타일에 맞춰 선택할 수 있습니다.

그러나 아직까지는 몇몇 문제점들이 남아있습니다.  실제로 개발에 적용해보는 것은 어려울 지도 모르겠습니다.  하지만 그런 문제점들을 떠나서 JSDT의 구조를 보면 알겠지만 매우 획기적인 디버거라 할 수 있다는 것입니다.  








- JSDT 란?

JSDT(JavaScript Debug Toolkit, 이하 JSDT로 표기함)는 IE, Firefox, Safari, Chrome, Opera 등 다양한 Web 브라우저를 지원하는 JavaScript 디버거입니다. JavaScript 디버거로는 Firefox Addon 인 Firebug가 꾀 유명하지만, 기존의 도구는 특정 Web 브라우저에서만 사용할 수 있는 것이 대부분입니다.


JSDT의 경우는 부가 기능을 설치하지 않고도 JavaScript 디버깅을 할 수 있습니다.
browser.png
- JSDT의 구조
실제로 JSDT를 실행해보기 전에 JSDT의 동작원리에 대해서 살펴보겠습니다.

JSDT는 HTTP 프록시 서버를 내장하고 있어, 디버깅 웹 브라우저는 HTML및 JavaScript와 같은 리소스를 프록시를 통해 참조하게 됩니다. 이 경우 HTML 및 JavaScript가 프록시에 따라서 JSDT에 디버깅하는데 필요한 JavaScript가 자동으로 포함되게 됩니다. 포함된 JavaScript 코드는 XHR를 통해 디버거 쪽으로 필요한 정보를 전달합니다.
structure.png
이러한 구조가 브라우저 쪽에 특별한 기능을 설치할 필요 없이 다양한 웹 브라우저에서 디버깅을 가능하게 합니다.
- JSDT 설치
이클립스 주노 버전의 Marketplace에서 검색해 보니 목록에는 나오지만 Install 버튼이 안보이네요. "Install New Software"를 통해 설치 합니다.
우선 이클립스 상단 메뉴 'Help > Eclipse Marketplace...'를 클릭 한 후 jsdt 로 검색 하면 두 번째에 'Javascript Debug Toolkit'에 대한 정보를 확인 할 수 있습니다.
Install 버튼이 없기 때문에 'Learn more' 를 클릭해서 Update site 확인 합니다. 또는 여기를 클릭해서 바로 이동합니다.
marketplace.png
JSDT 2.2.0은 이클립스 3.2 이상부터 지원하고 있네요. 화살표 모양의 클릭해서 Update Site 주소를 복사해 놓습니다.
jsdt2.2.0.png
이클립스 상단 메뉴 Help > Install New Software 클릭해서 설치 창이 뜨면 'Add...' 클릭해서 Repository Location 에 좀 전에 복사한 URL을 붙여놓습니다.(Name은 임의로 넣음)
repository.png
설치가 완료되면 이클립스가 재시작합니다. Debugger가 잘 작동되는지 간단하게 테스트 페이지를 만들어 보겠습니다.
간단하게 Test.html 페이지를 하나 만들고 breakpoint 를 찍은 후 F11 키로 debug 모드로 실행합니다. 아래와 같이 뜨면 Javascript Debug Toolkit을 선택을 하면 자바스크립트를 디버깅할 수 있습니다.
debug.png
test.png
원하는 만큼 깔끔하게 동작하지는 않지만 이정도면 아주 훌륭한거 같습니다. 근데 문제가 하나 남았네요. Javascript debug Toolkit으로 실행하니 UT-8로 작성된 화면들에 대해 한글 깨짐 현상이 발생합니다.
encoding1.png
그래서 다음과 같이 해결했습니다. 이클립스 홈 폴더에 있는 eclipse.ini 파일을 열어 vm argument로 파일 인코딩 파라미터를 추가했습니다.
위치는 -vmargs 바로 아래에 "-Dfile.encoding=utf-8"를 추가합니다.
eclipseini.png
이클립스 재시작 한 후 다시 한번 실행 시켜보니 한글도 정상적으로 잘 출력네요.
encoding2.png



출처 - http://dalcong2life.tistory.com/14






이클립스 JSDT 플러그인 사용으로 자바스크립트(jQuery) 쉽게 사용하기

 

개발환경 : window 7 32bit, JDK 1.6, jQuery 1.9, Eclipse Indigo

 

JSDT 는 자동완성 기능을 지원하기 때문에 자바스크립트 소스 개발에

아주 유용하다. 굳이 API 를 따로 찾아보지 않아도 되기 때문이다.

엄밀히 말하면 jQuery 사용을 편안하게 하기 위한 플러그인이다.

요즘은 자바스크립트 개발에 대부분 jQuery 를 사용하기 때문에 따로

구분해서 이야기 하지 않았다.

 

1. 설치

 

설치를 위해서 Marketplace 로 간다.

그리고 JSDT 를 검색해서 다운받는다.

 

2. include path 에 JSDT 추가

 

프로젝트를 선택하고 Properties 를 연다.

javascript > Include Path 를 클릭하게 되면 오른쪽에 등록된 라이브러리

리스트가 보일것이다. 여기에 추가하면 된다.

Add Javascript Library 버튼을 클릭해서 jQuery Library 선택하고 라이브러리

버전을 선택한후 종료한다.

아래 추가된 모습을 볼수 있다.

 

3. 테스트 페이지에서 확인

 

html 페이지를 만들어서 jQuery 자동완성 기능이 동작하는지 확인하자.

점을 찍고 ctrl + enter 를 누르게 되면 아래 그림과 같이 관련된 함수들이

나타나게 된다.

 


출처 - http://mainia.tistory.com/691










Posted by linuxism
,


JS와 CSS의 문자셋 지정

UI 개발을 하면서 JS와 CSS를 사용할 일이 많은데, 이 문자셋이라는 것이 문제가 될 때가 왕왕 있다.

특히, IE의 경우 HTML 문서와 링크된 외부 JS 파일/CSS 파일의 문자셋이 다르면 대부분의 경우 CSS는 무시, JS는 오류가 발생한다. 이 때, 자바스크립트 파일과 CSS 파일에 문자셋을 지정해 HTML 문서와 다른 문자셋을 써도 정상적으로 인식하게 만들 수 있다.

JavaScript 파일

자바스크립트는 외부 파일을 호출하는 <script> 태그에 속성으로 기술한다. 예를 들면, 외부 자바스크립트 파일이 utf-8 문자열을 사용한다면, 다음과 같이 작성할 수 있다.

<script type="text/javascript" src="path/file.js" charset="utf-8"></script>

붉은 글씨로 된 부분의 utf-8 을 원하는 문자열로 바꾸면 된다. charset 속성에 기술된 문자셋은 HTML 문서의 문자셋과 상관없이 인식되므로, 외부 자바스크립트 파일의 인코딩을 자유롭게 사용할 수 있다. 이 속성은 <script> 태그를 이용한 동적 스크립트 등에 유용하게 사용될 수 있다(이를 이용해 JSONP를 구현할 수도 있다). 또한 이 속성은, <a> <meta> <link> 태그에도 사용할 수 있다.

이 속성은 HTML 4.1 표준에 정의되어 있다.

CSS 파일

자바스크립트 파일은 HTML 문서에 있는 <script> 태그에 속성을 기술했지만, 이와 반대로 CSS 파일은 외부 파일에 직접 기술한다. 예를 들어, 외부 CSS 파일이 utf-8 문자열을 사용한다면, 다음 코드를 CSS 파일 제일 앞에 기술한다.

@charset "utf-8";

물론, 문자셋의 대소문자는 관계없으며, 역시 HTML 문서의 문자셋과는 상관없이 기술된 문자셋으로 인식된다.

이 선언은 CSS 2.1 표준에 정의되어 있다.


출처 - http://mygony.com/archives/1271



'Development > CSS' 카테고리의 다른 글

CSS - font 설정  (1) 2012.06.10
CSS - text-decoration 속성  (0) 2012.06.05
CSS - !important  (0) 2012.05.31
CSS - Font-Weight  (0) 2012.05.30
css - background-image 인쇄 문제  (0) 2012.05.30
Posted by linuxism
,