如何在多个jQuery按钮切换上应用DRY方法

时间:2017-04-17 08:39:03

标签: jquery wordpress jquery-ui

基本上我有至少20个或更多按钮和textareas这样的不同类名。

require(Option(path).isDefined, "Must have a real Path")

我正在做的是点击按钮后扩展textarea。通过做 -

<textarea class="widefat res_editor_exp2wid1" rows="10" cols="20" style="display: none;" id="<?php echo $this->get_field_id('jd1'); ?>" name="<?php echo $this->get_field_name('jd1'); ?>"><?php echo esc_attr($instance['jd1']); ?></textarea>
<button class="res_editor_btn_exp2wid1" type="button">Edit Content</button>

每次我都要编写这个有点烦人的jQuery,我想让它成为一个干燥的方法。我怎么能做到这一点?对不起如果这听起来很荒谬我在这件事上相当新手。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

1)你可以做一个each循环,而不是循环遍历每个div,然后找到div中的每个元素来执行你的功能。例如:

假设HTML符合以下几行:

<div class="foo">
  <button class="btn">Button</button>
  <div class="expand_me">...</div>
</div>

那你的JS就是

jQuery('.foo').each(function() {
  $button = $(this).find('button');
  $div = $(this).find('.expand_me');
  // do something to the button + div
});

2)您可以创建一个函数,为需要执行此操作的20件事中的每件事件调用:

var clickable = function(unique_code) {
  jQuery(document).on('click', '.res_editor_btn_'+unique_code, function(){
    jQuery(".res_editor_"+unique_code).toggle("slow").click(function(){
      jQuery('.res_editor_'+unique_code).trumbowyg();
    });
  });
};

然后,对于20次中的每一次,您需要执行此操作:

clickable('exp2wid1');