2013-05-08 2 views
0

Я использую jQuery Mobile. У меня есть кнопка переключения, мне нужно запустить диалог подтверждения, когда пользователь нажимает.JQuery Toggle .click function

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

$(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();} 
}); 
}); 

Я также пытался сделать стандартную функцию щелчка, но это не сработало:

$('#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, а также отображает небольшой прямоугольник под моим переключателем toggleswitch, что странно.

Кто-нибудь знает, как правильно запустить диалог подтверждения, как только пользователь нажмет на переключатель? И перед изменением переключателя

ответ

2

Функция, используемая таким образом, была устаревшей в jQuery 1.8 и удалена в 1.9! Вероятно, вы должны подключиться к built in events для мобильного тумблера jQ:

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

Спасибо! Это работает! – bagofmilk