2011-01-11 3 views
1

Dojo는 Dijit.form 요소에 대한 이벤트 처리기 및 기본 옵션 등을 설정하여 DOM에 삽입하는 유용한 기능을 갖고있는 것으로 보입니다. 예를 들어jQuery UI 요소와 Dojo (Dijit) 양식 요소

, 도조 : var slider = new dijit.form.HorizontalSlider({ name: sliderContainerId+'_slider', value: sliderValue, minimum: sliderMax, maximum: sliderMin,
onChange: function(value){ // some event handling logic } }, sliderContainerId);

그러나, jQuery를 UI 슬라이더는 전통적으로 DOM 요소에 적용되는 이미 존재 :

$(sliderContainerId).slider({ value:100, min: 0, max: 500, step: 50, slide: function(event, ui) { $("#amount").val("$" + ui.value); } });

내가 '프로그래밍'만들 수 있어야합니다 새로운 Sliders (및 기타 양식 요소)가 있지만 jQuery가 어떻게 구성되어 있는지를 확신 할 수는 없습니까? 어쩌면 내가

MTIA .... 여기에 뭔가를 분명 누락

답변

1

jQuery는 절대적으로 새로운 요소를 즉시 만들 수 있습니다. $("<div>").appendTo(".wrapper")은 새 div 요소를 만들고이를 ID 래퍼가있는 요소에 추가합니다. 더 큰 예 :

$("<div>").appendTo('.wrapper').slider({ 
    value:100, min: 0, max: 500, step: 50, 
    slide: function(event, ui) { $("#amount").val("$" + ui.value); } 
}); 
2

JQuery와 비슷한 이벤트 등록이 있습니다.

$('.class').live(eventname, eventhandler); 

같은 "클래스"를 공유하는 DOM에 삽입되는 모든 요소를 ​​사용하는 것입니다 수행하는 방법의 이벤트가 자동으로 엮은 것이다.

완전하고 포괄적 인 참조를 위해 사용 http://www.jqapi.com ... 당신 말이 맞아

0

는 jQueryUI의 위젯은 이미 DOM에 존재하는 요소에서 작동합니다.

아니요 jQueryUI는 당신이 설명하는 것과 같은 기능을 가지고 있습니다. 그래도 자신을 모방하는 것은 쉽습니다. 새 콘텐츠를로드 한 후에는 slider 함수를 새 html에 적용하면됩니다. 당신이 ready에와 AJAX 콜백 또는 유사한 내부에 이렇게 가정하면, 난 당신이 여러 위치에서 호출 할 수있는 고유 한 기능으로이 초기화 코드를 분리하는 것입니다 : 내가 도장을 사용한 적이

$(document).ready(function() { 
    initializeSlider("#slider_div"); 
}); 

function initializeSlider(selector) { 
    $(selector).slider({ 
     value:100, 
     min: 0, 
     max: 500, 
     step: 50, 
     slide: function(event, ui) { 
      $("#amount").val("$" + ui.value); 
     } 
    });   
} 

/* later on, when you insert new content, call initializeSlider again */ 

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { 
     $("body").append(data.content); // append new html to the DOM. 
     initializeSlider("#new_slider_element"); 
    } 
}); 

을하지만, 나는이 생각 당신이 말하는 시나리오 유형입니다.

관련 문제