2013-05-08 2 views
0

jQuery Mobile을 사용하고 있습니다. 사용자가 클릭 할 때 확인 대화 상자를 시작하는 데 필요한 토글 단추가 있습니다.JQuery 토글. 클릭 기능

나는 또한 표준 클릭 기능을 수행하려고했습니다,하지만 작동하지 않았다

$(document).ready(function() { 
$('#autosolve').toggle(function() { 
    var answer = confirm('This will erase all current values. Are you sure you want to continue?'); 
    if (answer === false) {return;} else {reset();} 
    }, function() { 
    var answer = confirm('This will erase all current values. Are you sure you want to continue?'); 
    if (answer === false) {return;} else {reset();} 
}); 
}); 

HTML

<div data-role="fieldcontain"> 
    <div class='ui-grid-a' > 
     <div class='ui-block-a'> 
      <h4 rel='tooltip' title='Feature that automatically solves other values as you type in inputs' style='color:#cc0000;'>Auto-Solve</h4> 
     </div> 
     <div class='ui-block-b'> 
      <select name="togSwitch" id="autosolve" data-theme="" data-role="slider" data-mini="true"> 
       <option value="off">Off</option> 
       <option selected value="on">On</option> 
      </select> 
     </div> 
    </div> 
</div> 

jQuery를 :

$('#autosolve').click(function() { 
    var answer = confirm('This will erase all current values. Are you sure you want to continue?'); 
    if (answer === false) { 
     return; 
    } else { 
     reset(); 
    } 
}); 

을 나는 또한 시도했다 .change()하지만 onload를 실행하고 내 토글 스위치 아래에 작은 선택 상자를 표시합니다. 이는 이상합니다.

사용자가 토글 스위치를 클릭하면 확인 대화 상자를 올바르게 시작하는 방법을 아는 사람이 있습니까? 그리고 토글이 변경되기 전에

답변

2

그런 식으로 사용 된 toggle() 함수는 jQuery 1.8에서 사용되지 않으며 1.9에서 제거되었습니다! jQ 모바일 토글 스위치의 경우 built in events에 연결해야합니다.

$("#autosolve").on('slidestart', function(event) { 
    var answer = confirm('This will erase all current values....'); 
    if (answer) reset(); 
    return answer;  
}); 
+0

감사합니다. 이 작품! – bagofmilk