2015-03-09 2 views
1

Извините, я не могу говорить по-английски, так что извините меня. У меня есть объект 'window.userInterface.filmMakinesi'. Я этот объект не запускаю консоль. Но при запуске моего javascript-файла возникает проблема. Не работает. Интересно.JQuery Анимация не работает, но работает консоль

window.userInterface.filmMakinesi = function(control) { 

     controlBox     = []; 
     controlBox["ileri"]  = {dinamikCSS: "top",operator:"-"}; 
     controlBox["geri"]  = {dinamikCSS: "bottom",operator:"+"}; 

     secim  = controlBox[control].dinamikCSS; 
     operator = controlBox[control].operator; 
     height  = parseInt($("section.open").height()); 
     /* 
     secim : top; 
    operator: - 
    height: 270; 
    */ 
     $("div#filmMakinesi").animate({ secim : operator+height+"px"},600,"swing"); 
    } 
window.userInterface.filmMakinesi("geri"); 

НЕ РАБОТАЕТ, НО КАК ЭТО РАБОТАЕТ. Строка вместо попытки я написал значение.

window.userInterface.filmMakinesi = function(control) { 

     controlBox     = []; 
     controlBox["ileri"]  = {dinamikCSS: "top",operator:"-"}; 
     controlBox["geri"]  = {dinamikCSS: "bottom",operator:"+"}; 

     secim  = controlBox[control].dinamikCSS; 
     operator = controlBox[control].operator; 
     height  = parseInt($("section.open").height()); 

     //        \/\/\/ 

     $("div#filmMakinesi").animate({ "top" : operator+height+"px"},600,"swing"); 
    } 
window.userInterface.filmMakinesi("geri"); 

ответ

1

Вам нужно будет создать объект, так что вы можете использовать [] обозначения, чтобы разрешить использование переменной secim в качестве динамического свойства.

var animateObject = {}; 
animateObject[secim] = operator+height+"px"; 
$("div#filmMakinesi").animate(animateObject ,600,"swing"); 

Вы не можете создать свойство foo таким образом:

var myVariable = 'foo'; 
    var object = { myVariable :'some value'}; 
    console.log(object.foo) // returns undefined 
    console.log(object.myVariable) // returns 'some value'