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();
})
任何建議和改進將不勝感激。