Jquery 是否有一种方法可以在代码上触发dblclik事件,语法为keydown上的highlighter?

Jquery 是否有一种方法可以在代码上触发dblclik事件,语法为keydown上的highlighter?,jquery,selection,double-click,syntaxhighlighter,Jquery,Selection,Double Click,Syntaxhighlighter,我正在使用。 它有一个功能,在高亮显示的文本上的dblclik上,选择所有选项: 我想通过在keydown上触发dblclick来实现同样的效果,这可行吗 我成功地捕捉到了按键事件: $(window).keydown(function(e) { if(e.ctrlKey && e.keyCode == 65) { console.log("Ctrl+A event captured"); e.preventDefault();

我正在使用。 它有一个功能,在高亮显示的文本上的dblclik上,选择所有选项:

我想通过在keydown上触发dblclick来实现同样的效果,这可行吗

我成功地捕捉到了按键事件:

$(window).keydown(function(e) {
    if(e.ctrlKey && e.keyCode == 65) {
        console.log("Ctrl+A event captured");
        e.preventDefault();
        /* but I dont know how to proceed */
    }
})

我非常感谢您在这个问题上提出的任何想法。

如果您希望扩展SyntaxHighlighter,您可以在GitHub上分叉并修改它

如果您没有免费的GitHub帐户,请注册,然后访问,然后单击
Fork
按钮

您也可以下载.ZIP并修改源代码。您想要的文件位于
src/core.js

附加到
dblclick
的代码位于

在本项目的分支中,只需添加以下内容:

  dom.attachEvent(dom.findElement(element, '.code'), 'keydown',   
    function(e)
    {
      if(e.ctrlKey && e.keyCode == 65) {
        console.log("Ctrl+A event captured");
        e.preventDefault();
        dom.quickCodeHandler();
        return false;
    }
  });
作为参考,执行此工作的代码位于中

/**
*快速代码鼠标双击处理程序。
*/
函数quickCodeHandler(e)
{
var目标=e.target,
highlighterDiv=findParentElement(目标,'.syntaxhighlighter'),
容器=findParentElement(目标,'.container'),
textarea=document.createElement('textarea'),
荧光灯
;
如果(!container | | |!highlighterDiv | | findElement(container,'textarea'))
返回;
//highlighter=highlighters.get(highlighterDiv.id);
//添加源类名
addClass(highlighterDiv,“源”);
//必须检查每一行并抓住它的文本,不能只在屏幕上做
//容器,因为Firefox会丢失所有\n Webkit没有的内容。
变量行=container.childNodes,
代码=[]
;
对于(变量i=0,l=lines.length;i
如果您希望扩展SyntaxHighlighter,可以在GitHub上分叉并修改它

如果您没有免费的GitHub帐户,请注册,然后访问,然后单击
Fork
按钮

您也可以下载.ZIP并修改源代码。您想要的文件位于
src/core.js

附加到
dblclick
的代码位于

在本项目的分支中,只需添加以下内容:

  dom.attachEvent(dom.findElement(element, '.code'), 'keydown',   
    function(e)
    {
      if(e.ctrlKey && e.keyCode == 65) {
        console.log("Ctrl+A event captured");
        e.preventDefault();
        dom.quickCodeHandler();
        return false;
    }
  });
作为参考,执行此工作的代码位于中

/**
*快速代码鼠标双击处理程序。
*/
函数quickCodeHandler(e)
{
var目标=e.target,
highlighterDiv=findParentElement(目标,'.syntaxhighlighter'),
容器=findParentElement(目标,'.container'),
textarea=document.createElement('textarea'),
荧光灯
;
如果(!container | | |!highlighterDiv | | findElement(container,'textarea'))
返回;
//highlighter=highlighters.get(highlighterDiv.id);
//添加源类名
addClass(highlighterDiv,“源”);
//必须检查每一行并抓住它的文本,不能只在屏幕上做
//容器,因为Firefox会丢失所有\n Webkit没有的内容。
变量行=container.childNodes,
代码=[]
;
对于(变量i=0,l=lines.length;i
您的意思是想扩展syntaxhighlighter库,同时使用
按键
来检测
CTRL-A
,还是想创建自己的库来复制syntaxhighlighter的行为?我的错,实际上扩展库是最好的选择您的意思是想扩展syntaxhighlighter库,同时使用
keydown
来检测
CTRL-A
,还是想创建自己的库来复制syntaxhighlighter的行为?我的错,实际上扩展库是最好的选择
/**
 * Quick code mouse double click handler.
 */
function quickCodeHandler(e)
{
  var target = e.target,
    highlighterDiv = findParentElement(target, '.syntaxhighlighter'),
    container = findParentElement(target, '.container'),
    textarea = document.createElement('textarea'),
    highlighter
    ;

  if (!container || !highlighterDiv || findElement(container, 'textarea'))
    return;

  //highlighter = highlighters.get(highlighterDiv.id);

  // add source class name
  addClass(highlighterDiv, 'source');

  // Have to go over each line and grab it's text, can't just do it on the
  // container because Firefox loses all \n where as Webkit doesn't.
  var lines = container.childNodes,
    code = []
    ;

  for (var i = 0, l = lines.length; i < l; i++)
    code.push(lines[i].innerText || lines[i].textContent);

  // using \r instead of \r or \r\n makes this work equally well on IE, FF and Webkit
  code = code.join('\r');

    // For Webkit browsers, replace nbsp with a breaking space
    code = code.replace(/\u00a0/g, " ");

  // inject <textarea/> tag
  textarea.appendChild(document.createTextNode(code));
  container.appendChild(textarea);

  // preselect all text
  textarea.focus();
  textarea.select();

  // set up handler for lost focus
  attachEvent(textarea, 'blur', function(e)
  {
    textarea.parentNode.removeChild(textarea);
    removeClass(highlighterDiv, 'source');
  });
};