У меня есть яваскрипт код, который мне нужно повторять много раз, только с небольшим изменением:Перебора массива факторизовать яваскрипт кода
мне нужно взять функцию ниже, и повторить его ТОЧНО то же самым, кроме изменения info_throbber к video_throbber, затем, map_throbber, затем picture_throbber и делать изменения только на 2 строках: строка 2 и 9)
Я не хочу просто повторять тезисы десятков строк один за другим, даже если он работает. Я бы хотел его разложить.
$(function() {
var $modal_types = $('select#game_info_throbber_modal_types') # FIRST INJECTION HERE
, $li = $modal_types.parent('li')
, $ol = $li.parent('ol')
, $form = $modal_types.closest('form')
, $submit = $form.find('input[type=submit]')
, $add_modal = $('<a href="#">Add Modal</a>')
, $remove_modal = $('<a href="#">Remove Modal</a>')
, $hidden_info_modals = $('input[id=game_info_throbber][type=hidden]') # SECOND INJECTION HERE
;
$add_modal.click(function(e) {
e.preventDefault();
.append($remove_modal.clone(true));
create_info_modal($li.clone());
});
$remove_modal.click(function(e) {
e.preventDefault();
$(this).parent('li').remove();
});
});
Используя Loop through an array in JavaScript, вот что я пытался, но он не:
var i, s, myStringArray = [ "info_throbber", "video_throbbe", "map_throbber", "picture_throbber" ], len = myStringArray.length
for (i=0; i<len; ++i) {
if (i in myStringArray) {
s = myStringArray[i];
// ... do stuff with s ...
$(function() {
var $modal_types = $('select#deal_' + s + '_modal_types')
, $li = $modal_types.parent('li')
, $ol = $li.parent('ol')
, $form = $modal_types.closest('form')
, $submit = $form.find('input[type=submit]')
, $add_modal = $('<a href="#">Add Modal</a>')
, $remove_modal = $('<a href="#">Remove Modal</a>')
, $hidden_info_modals = $('input[id=deal_' + s + '][type=hidden]')
;
$add_modal.click(function(e) {
e.preventDefault();
$(this).closest('li')
.append($remove_modal.clone(true));
create_info_modal($li.clone());
});
$remove_modal.click(function(e) {
e.preventDefault();
$(this).parent('li').remove();
});
};
}
};
Проблема, кажется, работает, но не полностью, поскольку он не присоединять на обоих $ add_modal и не позволяют изменения значения. Я не думаю, что необходимо глубоко понять сложный код выше, но дело в том, что он не работает, когда я просто поместил все 4 функции один за другим (сначала для info_throbber, затем video_throbber и т. Д.). .), оно работает. Таким образом, я создаю итерайтон через массив, должен работать.
спасибо за помощь,
неправильные цитаты: '«map_throbber'' – Rooster
Если '» video_throbbe «' 'быть» video_throbber "' –
@brand olsencorrected ТХ – Mathieu