2011-10-01 9 views
0

jquery 객체에서 함수를 동적으로 호출해야하는 다음과 같은 시나리오가 있습니다. 코드는 다음과 같습니다.Jquery 함수를 동적으로 호출합니다.

$('div[class]').each(function(){ 
    var class=$(this).attr('class'); 

    // I want to now check if that function with the name of class exists for jquery 
    // object. I need help here. 
    // if that function exists, i need to apply that function to the enumerated object. 
}); 

jQuery 객체에 해당 클래스의 함수가 있는지 확인하고 싶습니다. 도움이 필요해. 해당 함수가 있으면 해당 함수를 열거 형 개체에 적용해야합니다.

+0

: 함수 인 경우 JQuery와 방법은 다음과 시도 유스 케이스를 여기에서 분명히 볼 수 없습니다. 무엇을 성취하려고합니까? 내가 이것을하면 다음과 같이 설명해야한다. 이 요소에'abc' 클래스가 있다면'abc' 함수가 실행되기를 원합니다 ... – Shef

+0

예, 요소에 abc 클래스가 있다면 그 함수가 존재한다면 abc가 그 요소에서 실행되기를 원합니다. – emphaticsunshine

+1

글로벌 네임 스페이스에서 jQuery의'jQuery.fn.function_here'에 존재합니까? 또한 요소가 하나의 클래스로만 구성됩니까? – Shef

답변

2

나는 내 머리 위로의이 쓰고 있어요

if(jQuery.isFunction(jQuery.fn[class])) { 
    jQuery.fn[class](this); 
    jQuery(this)[class](); // alternative call syntax 
} 
+0

나는 그것이 내가 찾고 있었던 꽤 가까운 것이라고 생각한다. 고맙습니다 – emphaticsunshine

0

$.isFunction(func)을 사용하여 func이 기능인지 여부를 확인하십시오.

if(jQuery.isFunction(jQuery[class])) 
    jQuery[class](this); 

편집 : 그것은 작동하지만 시도되지 않을 수도 있습니다

+0

나는 그 함수의 객체 프라퍼티에 대한 참조를 전달할 수 있다고 생각한다. 그것은 변수를 받아 들일 수 있습니까? 예 : var class = 'accordion'; $ .isFunction (class); 이 방법이 유용할까요? – emphaticsunshine

관련 문제