Javascript 将jQuery转换为Prototype JS

Javascript 将jQuery转换为Prototype JS,javascript,jquery,prototypejs,Javascript,Jquery,Prototypejs,我需要将下面的jQuery转换为Prototype JS jQuery("button.btn-transcript").click(function() { tsTarget = jQuery(this).attr("data-target"); if (jQuery(this).hasClass("collapsed")) { jQuery(tsTarget).show(200); jQuery(this).removeClass("collapsed");

我需要将下面的jQuery转换为Prototype JS

jQuery("button.btn-transcript").click(function() {
  tsTarget = jQuery(this).attr("data-target");
  if (jQuery(this).hasClass("collapsed")) {
    jQuery(tsTarget).show(200);
    jQuery(this).removeClass("collapsed");
    jQuery(this).attr("area-expanded","true");
  } else {
    jQuery(tsTarget).hide(200);
    jQuery(this).addClass("collapsed");
    jQuery(this).attr("area-expanded","false");
  }
});
我试了一下,但我对JS原型不太在行。我的方向对吗

$("button.btn-transcript").on('click', 'button.btn-transcript', function(event, el)) {
  transTarget = $(this).readAttribute("data-target");
  function(event,el) {
    if($(this).hasClassName("collapsed")) {
      $("transTarget").show();
      $(this).removeClassName("collapsed");
      $(this).writeAttribute("area-expanded", "true");
    } else {
      $("transTarget").hide();
      $(this).addClassName("collapsed");
      $(this).writeAttribute("area-expanded", "false");
    }
  }
试试这个:

$(document).on('click', 'button.btn-transcript', function(evt, elm) {
  var tsTarget = $$(elm.readAttribute('data-target')).first();
  elm.toggleClassName('collapsed');
  tsTarget.toggle();
  elm.writeAttribute('aria-expanded', 
    (elm.readAttribute('aria-expanded') == 'true' ? 'false' : 'true'));
});
它不会百分之百地工作,因为原型中的隐藏和显示(在这里折叠成一行
切换
)是即时的。如果您希望项目以您编写的方式转换200毫秒以上,则需要使用CSS转换效果

如果您的按钮控制多个项目(如果DOM中有多个元素与您在数据目标属性中输入的内容相匹配),则您将对此进行非常轻微的更改:

$(document).on('click', 'button.btn-transcript', function(evt, elm) {
  var tsTargets = $$(elm.readAttribute('data-target'));
  elm.toggleClassName('collapsed');
  tsTargets.invoke('toggle');
  elm.writeAttribute(
    'aria-expanded', 
    (elm.readAttribute('aria-expanded') == 'true' ? 'false' : 'true')
  );
});