2011-08-15 2 views
1

this documentation을 기반으로하는 첫 번째 jQuery 플러그인을 작성 중이며 이에 대한 질문이 있습니다. 이 특별한 예는 같은 요소와 방법으로 jQuery를 사용하는 방법을 보여구조는 jQuery를 함수 및 메서드로 사용합니까?

그러나
$("myelement").myfunction({title: blah}); 

, 내가 요소없이 독립 기능으로 사용할 수있는 방법? 예 : 나는 순간에이 작업을 수행 할 때

$.myfunction({title: blah}); 

내가 얻을

감사합니다 "$ .myfunction가 아닌 기능입니다!"

편집 : 현재 코드 :

(function($){ 
    $.fn.tasks = function(options) { 

    var defaults = { 
     'action' : 'gettasks', 
     'list'  : 'default', 
     'task'  : '', 
     'title'  : '' 
    }; 

    var options = $.extend({}, defaults, options); 

    return this.each(function() { 

     var $this = $(this); 
     var ajax_load = "<img class='loading' src='images/ajax-loader.gif' alt='loading...' />"; 
     var urlparams; 

     if (options.action == 'gettasks') { 
      urlparams = "action=gettasks"; 
      urlparams += "&list="+options.list; 
     } 

     if (options.action == 'getlists') { 
      urlparams = "action=getlists"; 
     } 

     if (options.action == 'create') { 
      urlparams = "action=create&list="+options.list+"&title="+options.title; 
     } 

     if (options.action == 'update') { 
      urlparams = "action=update&list="+options.list+"&taskid="+options.task; 
     } 


     $.ajax({ 
      url: "include/tasks_handler.php?"+urlparams, 
      cache: false, 
      beforeSend: function() { 
       $this.html(ajax_load); 
      }, 
      success: function(html){ 
       $this.html(html); 
       if (options.action == 'update') { 
        $("#taskList").tasks(); 
       } 
      } 
     }); 

    }); 
    }; 
})(jQuery); 

답변

2

는이 방법에서 jQuery 개체를 반환하지 않는 한 때까지 jQuery 체인을 사용할 수 없으며이

$.myfunction = function(options){ 
    //method logic here 
}; 

//Use it here 
$.myfunction({title: blah}); 

그러나이 방법 같은 함수로 정의합니다.

0

예. 그냥이를 좋아합니까 :

$.pluginName = function(/* arguments here */) { 
    // Plugin Code here 
} 
1

하지 jQuery.fn 때문에, jQuery 개체 자체에 기능을 추가합니다.

jQuery.myfunction = function(options) { 
    alert(options.title); 
}; 

과 같이 호출 :

$.myfunction = function() { ... }; 
+0

어떻게 DOM과 독립 실행 형으로 만들 수 있습니까? 질문에 예제 코드를 추가했습니다. – FLX

0

이처럼 정의 할 수

여기에 게시 다른 답변에 추가
$.myfunction({title: 'foo bar'}); 
1

방법 각각의 방법을 수행하는 중요한을 보여 여기서 구별 할 부분은 $ 네임 스페이스 또는 $.fn 네임 스페이스를 사용해야합니까?

jQuery의 내부 메소드가 있으면 다음과 같은 구분을합니다.

  • $.fn는 DOM의 존재에 대한 지식을 갖지 않는 객체 (배열 컬렉션 POJO 등)에서 작동하도록 사용되는 DOM 요소
  • $에서 작동하기 위해 사용된다.
+0

나는 그것을 DOM과 때때로 독립 실행 형으로 사용할 때 상호 배타적 인 것이 아니기 때문에 두 가지 방식으로 작동하게하고 싶다. – FLX

관련 문제