【如何将】如何在Drupal实现Click insert textarea效果?

更新时间:2019-08-19    来源:jquery    手机版     字体:

【www.bbyears.com--jquery】

如何在Drupal实现Click insert textarea效果?本教程讲的是单纯的实现click insert textarea的效果,只需一段jquery,它在token.js里的Drupal.behaviors.tokenInsert 函数,改改寻址class就能用了,示例代码如下:

/**
 * Insert rules to textarea.
 */
Drupal.behaviors.rulesInsert = {
  attach: function (context, settings) {
    // Keep track of which textfield was last selected/focused.
    $("textarea", context).focus(function() {
      Drupal.settings.sv_rulesFocusedField = this;
    });
 
    $(".token-click-insert dd", context).once("token-click-insert", function() {
      var newThis = $("javascript:void(0);" title="" + Drupal.t("Insert this token into your form") + "">" + $(this).html() + "").click(function(){
        if (typeof Drupal.settings.sv_rulesFocusedField == "undefined") {
          alert(Drupal.t("First click a text field to insert your tokens into."));
        }
        else {
          var myField = Drupal.settings.sv_rulesFocusedField;
          var myValue = $(this).text();
 
          //IE support
          if (document.selection) {
            myField.focus();
            sel = document.selection.createRange();
            sel.text = myValue;
          }
 
          //MOZILLA/NETSCAPE support
          else if (myField.selectionStart || myField.selectionStart == "0") {
            var startPos = myField.selectionStart;
            var endPos = myField.selectionEnd;
            myField.value = myField.value.substring(0, startPos)
                          + myValue
                          + myField.value.substring(endPos, myField.value.length);
          } else {
            myField.value += myValue;
          }
 
          $("html,body").animate({scrollTop: $(myField).offset().top}, 500);
        }
        return false;
      });
      $(this).html(newThis);
    });
  }
};


注:rulesInsert 可自定义,寻址class:.token-click-insert dd 需要改成你的,完整效果参看你安装token模块后插入token的效果。

本文来源:http://www.bbyears.com/wangyezhizuo/63037.html