jquery hovercard プラグインを使用して、ユーザーが特定のテキスト文字列にカーソルを合わせたときに ajax を使用してテキスト ファイルからテキストを取得しています。これはすべてうまく機能します。
ページの読み込み時にコンテンツを検索し、一致する名前にクラスを追加する機能を追加しましたlabel
。これは、名前が定義されている場合にうまく機能します。
私の前の質問の助けを借りて; (@Alex Klockに感謝します)、ホバー時にテキストファイルから1つのdivのtext/htmlのみが取り込まれるようにしました-名前が定義されている場合にうまく機能します。
私が今する必要があるのは、すべてをまとめて動的にすることです。これにより、ページの読み込み時にすべての名前がテキスト ファイルから取り出され、正しいlabel
クラスが関連する名前に追加され、正しい/対応するテキストが追加されます。ホバーすると /html が表示されます。
どんな助けでも大歓迎です:)
//HTML コード
<div id="content">
<p>jQuery by John Resig is a cross-browser JS library designed to simplify the client-side scripting of HTML. It was released in January of 2006 at BarCamp NYC. Used by over 46% of the 10,000 most visited websites, it's the most popular JavaScript library in use today Tim Berners-Lee.</p>
<p>jQuery is free, Tim Berners-Lee open source software, dual-licensed under the MIT License and GNU General Public License, Tim Berners-Lee Version 2.[4] jQuery's syntax is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and John Resig develop Ajax applications.</p>
</div>
//Jクエリコード
//based on Highlight words in text with jQuery by (http://www.gotoquiz.com/web-coding/programming/javascript/highlight-words-in-text-with-jquery/)
jQuery.fn.addhover = function (str, className) {
var regex = new RegExp(str, "gi");
return this.each(function () {
$(this).contents().filter(function() {
return this.nodeType == 3 && regex.test(this.nodeValue);
}).replaceWith(function() {
return (this.nodeValue || "").replace(regex, function(match) {
return "<label class=\"" + className + "\" style=\"color:#932121;\">" + match + "</label>";
});
});
});
};
$(document).ready(function () {
var HTML_FILE_URL = 'helloworld.txt';
$.get(HTML_FILE_URL, function(data) {
var fileDom = $(data);
fileDom.filter('.contact').each(function() {
var savename = $(this).closest(".contact").attr("id");
});
});
$("#content *").addhover("John Resig", "demo-ajax");
var hoverHTMLDemoAjax = '<div class="demo-cb-tweets"></div>';
$(".demo-ajax").hovercard({
detailsHTML: hoverHTMLDemoAjax,
width: 350,
delay: 500,
cardImgSrc: 'http://ejohn.org/files/short.sm.jpg',
onHoverIn: function () {
$.ajax({
url : "helloworld.txt",
type: 'GET',
dataType: "text",
beforeSend: function () {
$(".demo-cb-tweets").prepend('<p class="loading-text">Loading latest tweets...</p>');
},
success: function (data) {
var people = $(data),
john = people.filter('#John_Resig');
$(".demo-cb-tweets").empty().append(john);
},
complete: function () {
$('.loading-text').remove();
}
});
}
});
});
//Helloworld.txt ファイルの内容
<div class="contact" id="John_Resig">
<p><strong>John_Resig Testing testing testing!</strong></p>
<p>And on another line of text : )</p>
</div>
<div class="contact" id="Tim_Berners_Lee">
<p><strong>Tim_Berners_Lee Testing testing testing!</strong></p>
<p>And on another line of text : )</p>
</div>