0

我有一个使用了很多类的表格。类的格式为“hide-user-name、show-user-name、update-user-select、data-user-types”。在一个 js 文件中,它遍历类名并进行一些操作。我无法正确理解..有人可以帮我理解它在做什么。

$.each(classNames, function(i, className) {
    className = className.split('-');
    var action = className.shift();
    alert("action "+action); --- Gives hide/show/update/data
    alert('.' + className.join('-'));--- .user-name
    if (action === 'show' || action === 'hide') {
      form.find('.' + className.join('-'))[action]();  
    }
});

我不明白最后一行。这条线有什么作用?

更新 2

var field = $(this), classNames = [], optionClassNames = [], updateField, dataField, options = [];

if (action === 'update') {
  className = className.join('-');
  updateField = form.find('input.' + className + ', select.' + className + ', textarea.' + className);

  if (dataField && dataField.length) {
    updateField.html('');
    options.length = 0;

$.each(dataField, function(x, item) {
  if (typeof item === 'object') {
    options.push('<option class="' + (item.condition || '') + '" value="' + item.value + '">' + (item.title || item.value) + '</option>');
  } else {
      options.push('<option class="' + (item || '') + '" value="' + item + '">' + item + '</option>');
  }
});

updateField.html(options.join(''));

if (updateField.selectmenu) {
  updateField
    .selectmenu('destroy')
    .selectmenu({
      style:'dropdown',
      maxHeight: 200,
      transferClasses: true
    });
}

clearMessages(updateField);
  }
}

谢谢

4

1 回答 1

0

如果您指的是该行form.find('.' + className.join('-'))[action]();

如果将找出form具有类的元素的后代,然后在该元素上user-name调用其中一个show()hide

演示:小提琴

于 2013-11-14T05:50:10.880 回答