基本上我有至少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,我想让它成为一个干燥的方法。我怎么能做到这一点?对不起如果这听起来很荒谬我在这件事上相当新手。任何帮助,将不胜感激。
答案 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');