Вызов свойств объектов из массива или объекта с параметрами
Допустим у нас есть несколько объектов:
$.Nav = {
init: function(){
return this;
},
begin: function(){
alert('begin nav');
},
destroy: function(){
alert('destroy nav');
}
}
$.Nav2x = {
init: function(){
return this;
},
begin: function(){
alert('begin Nav2x');
},
destroy: function(){
alert('destroy Nav2x');
}
}
$.Nav3x = {
init: function(){
return this;
},
begin: function(){
alert('begin Nav3x');
},
destroy: function(){
alert('destroy Nav3x');
}
}
Есть строка с параметрами в которой говорится какие объекты будут запускаться:
var params = {"Nav3x","Nav2x"};
И где-то дальше есть функции которые управляют объектами переданными в params:
function toDo(){
//тут должны вызваться методы "begin" всех объектов
//которые есть в params
}
function toStop(){
//тут должны вызваться методы "destroy" всех объектов
//которые есть в params
}
Каким образом можно реализовать тела функций toDo() и toStop() ? |
Цитата:
|
Sanu0074,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
$.Nav = {
init: function(){
return this;
},
begin: function(){
alert('begin nav');
},
destroy: function(){
alert('destroy nav');
}
}
$.Nav2x = {
init: function(){
return this;
},
begin: function(){
alert('begin Nav2x');
},
destroy: function(){
alert('destroy Nav2x');
}
}
$.Nav3x = {
init: function(){
return this;
},
begin: function(){
alert('begin Nav3x');
},
destroy: function(){
alert('destroy Nav3x');
}
}
var params = ["Nav3x","Nav2x"];
function test(params,metod)
{
$.each(params, function(){
$[this][metod]()
});
}
function toDo(){
test(params,'begin')
}
function toStop(){
test(params,'destroy')
}
toDo()
toStop()
});
</script>
|
Вот я сделал кусок кода, выдает ошибку где console.log(.params) - будто undefined
Вот я написал что:
$.Enquire = ({
MOBILE: "screen and (max-width:480px)",
TABLET: "screen and (max-width: 992px)",
DESKTOP: "",
params: ["Nav"],
init: function(){
console.log('Eq init');
enquire.register(this.TABLET, {
deferSetup: true,
setup: function () {
},
match: function () {
console.log('match');
console.log($.Enquire.params);
$.Enquire.params.forEach(function(v){$[v].begin()});
},
unmatch: function () {
console.log('UNmatch');
$.Enquire.params.forEach(function(v){$[v].destroy()});
}
});
}
}).init();
|
упс, понял) $this = this; спасибо))
|
| Часовой пояс GMT +3, время: 01:03. |