0
我已经强调了CodeRay的ruby代码,现在我想知道用户点击了哪个行号。此行号应与源代码中的行代号对应。哪种做法最好?通过JavaScript获取html中的行号
我已经强调了CodeRay的ruby代码,现在我想知道用户点击了哪个行号。此行号应与源代码中的行代号对应。哪种做法最好?通过JavaScript获取html中的行号
下面是我解决这个问题的方法。 我使用CodeRay的数字生成了html。但CodeRay不会对官方网站准确documantation,所以找throught的CodeRay的代码后,我做了这样的:
content = CodeRay.scan(file.read, :ruby).div(:css => :class,
:line_numbers => :inline)
:line_numbers => :table
不会在我的情况下正常工作模式这是我应该使用:inline
模式。如果你不喜欢你的HTML页面中的数字,我认为你可以通过CSS或JavaScript删除它。 后来我写了小javascript函数:
$('span').not('.no').click(function(e) {
var target = $(e.target);
target.effect('highlight', {}, 'slow');
var i = 0;
var prev_element = target.prev();
var element;
while (i++ < 10) {
element = $(prev_element[0]).context;
if (element.className == "no") break;
prev_element = prev_element.prev();
}
if (i > 9) {
alert("Some problem with the finding number line");
}
else {
var line_number;
if (element.children.length > 0) line_number = element.children[0].innerHTML;
else line_number = element.innerHTML;
alert(line_number);
}
e.stopPropagation();
})
任何建议和改进将不胜感激。