문제

Mootools 의:할 수 있는 방법을 허용하지 않고 var drag 에 따라 checkbox 검사 는지?

window.addEvent('domready',function() {
  var z = 2;
  $$('#dragable').each(function(e) {
    var drag = new Drag.Move(e,{
      grid: false,
      preventDefault: true,
      onStart: function() {
        e.setStyle('z-index',z++);
      }
    });
  });
});
function check(tag){
  if(tag.checked){
    //checkbox checked
    //How to Disallow Drag.Move for #dragable ?
    //Unfortunately so it does not work - drag.destroy(); drag.removeEvents();
  }else{
    //How to Allow Drag.Move for #dragable ?
  }
}
<input type="checkbox" onClick="check(this);">
<div id="dragable">Drag-able DIV</div>
도움이 되었습니까?

해결책

스토어의 인스턴스 Drag 에 mootools 의 저장소 그래서 때는 확인란을 클릭하면,검색할 수 있습니다 인스턴스와 조작 할 수 있습니다.

끕니다.이동 는 확장자를 베이스 끌어 클래스고,당신이 볼 수 있는 문서,당신은 그것을 알 수 있는 두 가지 방법에 대한 이 상황:

전화해야 하는 이러한 방법에서 왼쪽 마우스 버튼을 클릭할 때 작성되는 통화 new Drag.Move(..) 을 활성화 또는 비활성화합니다.

그래서 처음 만들임으로 당신은 이미 하고 있:

var drag = new Drag.Move(e, {
    ...
});

저장의 참조 이 drag 체 요소 내부에 저장됩니다.

e.store('Drag', drag);

당신이 사용할 수 있습니다 핵심을 원하는 여기에서-난 사용 "Drag".

그런 다음 이후에 체크 기능을 검색하임,그리고 전화 attachdetach 에 따라 그것에서의 상태를 확인란을 선택합니다.

function check(elem) {
    var drag = elem.retrieve('Drag'); // retrieve the instance we stored before

    if(elem.checked) {
        drag.detach(); // disable dragging
    }
    else {
        drag.attach(); // enable dragging
    }
}

의하십시오 수정하는 작업이 확인란을 선택합니다.

메모 측면에 검색하는 경우 요소에 의해 신분증을 사용할 필요가 없 $$ 으로 이상적으로 있어야만 요소와 함께하는 id 입니다. $$("#dragable") 너무 중복하고 적 확대됨.사 document.id('dragable')$("dragable") 대신 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top