2015-06-25 9 views
0

У меня есть счастливый сценарий вращения, который должен получить случайное число из базы данных и позволить ему вращаться к числу.Обновить объект jquery после ajax

Проблема заключается в том, что после document.ready я не могу снова присвоить значение объекту.

<input type="button" value="test" id="playBtn" onclick="getluckynumber();"/> 
    <input type="button" id="fire" style="visibility:hidden;"/> 
    <input type="hidden" id="luck" value=""/> 

function getluckynumber(){ 
      $.ajax({ 
       url:"ajax.php", 
       method:"POST", 
       data:{event_id:'<?=$event_id ?>'}, 
      }) 
        .done(function(data){ 
         $("#luck").val(data); 
         $("#fire").trigger("click"); 
        }); 
     } 

     $(document).ready(function(){ 
      $('.slot').jSlots({ 
       spinner:'#fire', 
       endNumbers:$("#luck").val(), 
      }); 
     }); 

Как сделать «endNumbers» новым для вас?

UPDATE: https://jsfiddle.net/asaxpse3/1/

UPDATE: Окончательный рабочий код

var getNewNumber=function(spinner){ 
     $.ajax({ 
      url:"ajax.php", 
      method:"POST", 
      async:false, 
      data:{event_id:'23'}, 
     }) 
       .done(function(data){ 
        if(data){ 
         spinner.options.endNumbers=JSON.parse(data); 
         //console.log(data); 
        } 
       }); 
    }; 

    $(document).ready(function(){ 
     $('.slot').jSlots({ 
      spinner:'#playBtn', 
      onStart:getNewNumber 
     }); 
    }); 

Благодаря skobaljic.

+0

вы хотите изменить слоты конечного числа, когда слоты плагин уже срабатывает? – madalinivascu

+0

Это модифицированный экспериментальный плагин, вы можете найти его здесь (http://jsfiddle.net/d3fZV/). – skobaljic

+0

@madalinivascu да, возможно ли это? – poiseberry

ответ

0

Вы можете связать функцию onStart вариант, но вы должны изменить код плагина и предоставить экземпляр вращателя в качестве параметра:

if ($.isFunction(base.options.onStart)) { 
    base.options.onStart(base); 
} 

Чем вы должны определить функцию генератора случайных чисел, например:

var getNewNumber = function(spinner) { 
    /* Some SYNC!! ajax stuff, than when done: */ 
    //the returned data is a array, eg [1,3,4] 
    //for the spinner to stop at 134 
    spinner.options.endNumbers = [1, 3, 4]; 
}; 

И в конце концов, связать функцию генератора для onStart опции плагина:

$('.slot').jSlots({ 
    spinner: '#playBtn', 
    endNumbers: [], 
    onStart: getNewNumber 
}); 

Обратите внимание: AJAX должен быть синхронизирован, используйте параметр async: false.

Complete code here

+0

Куда я должен поместить этот 'if ($ .isFunction (base.options.onStart)) { base.options.onStart (base); } '? Я не мог найти в вашем полном коде, спасибо – poiseberry

+0

Вы можете скопировать код в текстовый редактор и найти его, или просто скопировать код плагина и использовать его. – skobaljic

Смежные вопросы