динамическое размещение событий обмена с использованием jquery

0

Я получаю массив drawerFields, который является динамическим. Я пытаюсь написать onchange событие для этого. но когда это событие события onchange еще не разрешено, зависимое имя остается неопределенным.

function dcdcsCascadeEffect(){
   for(var j=0;j+1<drawerCompleteFields.length;j++){
      var dependentName=drawerCompleteFields[j+1];
      var parentName=drawerCompleteFields[j];
      $('#'+parentName).on('change',function(){
        callFilterDataLoaderFunction(dependentName);
      });
    }
 }

 function callFilterDataLoaderFunction{
    window[filterFields[filterName].type + "FilterOperations"](filterFields[filterName]);
 }

HTML:

<select data-placeholder="Division" multiple="multiple" class="multiselectFilter" id="divisions" style="width: 100%; display: none;">
 <option value="multiselect-all">All</option>
 <option value="1" selected="">Mobile</option>
</select>

Может кто-нибудь сказать мне, как этого добиться.

  • 1
    callFilterDataLoaderFunction? Где эта функция? Пожалуйста, добавьте HTML и полный JavaScript, чтобы помочь вам :)
  • 0
    просто увидев заголовок, я думаю, вы можете узнать больше о делегировании событий в jQuery, что можно сделать с помощью самого современного метода .on() .
Показать ещё 3 комментария
Теги:

1 ответ

0

Похоже, что так называемые события-события могут решить вашу проблему:

function dcdcsCascadeEffect(){
  for(var j=0;j+1<drawerCompleteFields.length;j++){
    var dependentName=drawerCompleteFields[j+1];
    var parentName=drawerCompleteFields[j];
    $('#'+parentName).on('change', dependentName, function(e){
      callFilterDataLoaderFunction(e.data);
    });
  }
}

Ссылка .on() вы можете увидеть синтаксис в начале:

.on (события [, селектор] [, данные], обработчик)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню