ปลั๊กอิน JQuery Tooltipster ไม่แสดงคำแนะนำเครื่องมือพร้อมไฮเปอร์ลิงก์ในเนื้อหา html

ฉันทำตามคำแนะนำของเอกสารอย่างเป็นทางการที่:

http://iamceege.github.io/tooltipster/#htmlcontentalt

ทุกอย่างทำงานได้ดี สิ่งเดียวที่ฉันเพิ่มคือแท็ก 'a' ภายในเนื้อหาดังนี้:

นี่คือรหัส html:

<a class="tooltip-container">
    This div has a tooltip with HTML when you hover over it!
    <span class="tooltip_content">
      <a href="/th#"></a><img src="myimage.png" /> <strong>This is the content of my tooltip!</strong>
    </span>
</a>

นี่คือรหัสจาวาสคริปต์:

$('.tooltip-container').tooltipster({
  functionInit: function (instance, helper) {
    var content = $(helper.origin).find('.tooltip_content').detach();
    instance.content(content);
  }
});

นี่คือ JSFiddle:

https://jsfiddle.net/c3ddf8bm/7/

น่าเสียดายที่คำแนะนำเครื่องมือไม่แสดงอะไรเลย!

หมายเหตุ: ฉันทดสอบกับ Chrome และ IE เวอร์ชันล่าสุด

อัปเดต:

ตามซอของ xorspark และ Josh Whitlow ฉันตระหนักว่าปัญหานี้จะเกิดขึ้นก็ต่อเมื่อ "คอนเทนเนอร์เคล็ดลับเครื่องมือ" หลักคือไฮเปอร์ลิงก์นั่นเอง ฉันคิดว่ามันสมเหตุสมผลที่จะกำหนดให้มันเป็นไฮเปอร์ลิงก์หรือแท็กอื่นที่ไคลเอนต์สามารถเน้นไปที่มันได้โดยใช้แป้นพิมพ์ ไม่เช่นนั้น ฉันคิดว่ามันจะมีปัญหาในการเข้าถึง


person 1man    schedule 27.08.2016    source แหล่งที่มา
comment
คุณได้รับข้อผิดพลาดใดๆ ในคอนโซลของคุณนอกเหนือจากภาพที่หายไปหรือไม่ หากมี รหัสของคุณทำงานได้ดีสำหรับฉันทั้งที่มีและไม่มีภาพที่เสียหายใน Firefox, Chrome และ IE jsfiddle   -  person xorspark    schedule 27.08.2016
comment
คุณเห็นซอของฉันไหม? แท็ก Anchor อยู่ที่นั่น ไม่มีข้อผิดพลาด ทำงานได้ดี   -  person xorspark    schedule 27.08.2016
comment
@xorspark ขอโทษที่ฉันพลาดซอของคุณ ให้ฉันลองรหัสของฉันอีกครั้ง ขอบคุณนะ   -  person 1man    schedule 27.08.2016
comment
@xorspark ขอบคุณมากสำหรับซอของคุณ ฉันเล่นกับมันและรู้ว่ามีอะไรผิดปกติกับฉัน ปัญหานี้เกิดขึ้นเมื่อคอนเทนเนอร์คำแนะนำเครื่องมือหลักของฉันคือไฮเปอร์ลิงก์นั่นเอง ฉันสมเหตุสมผลแล้วที่จะกำหนดให้มันเป็นไฮเปอร์ลิงก์หรือแท็กอื่นที่ไคลเอนต์สามารถเน้นไปที่มันได้โดยใช้แป้นพิมพ์ ไม่เช่นนั้นจะมีปัญหาในการเข้าถึง ขวา? ฉันจะอัปเดตคำถามของฉันเพื่อรวมประเด็นนี้   -  person 1man    schedule 27.08.2016
comment
คลาส .tooltip_templates ไม่ได้อยู่ในนี้   -  person Louis Ameline    schedule 27.08.2016
comment
@Evan เพื่อที่จะแก้ไขข้อกังวลของคุณฉันได้กำจัด div ด้วย class=tooltip_templates ในคำถามของฉัน มันไม่ทำงานเช่นกัน   -  person 1man    schedule 27.08.2016


คำตอบ (2)


ปัญหาของคุณคือคุณมีสมอซ้อนกันอยู่ภายในสมอของคุณ แม้ว่า อาจ เป็นไปได้ แต่ฉันขอแนะนำให้ลบแท็ก Anchor ด้านในออก ไม่เช่นนั้นจะมีเพียงแท็ก Anchor ด้านในและทำให้คอนเทนเนอร์มีช่วงขยาย

ดังที่เห็นในโพสต์นี้ แม้ว่าคุณจะจัดการเพื่อให้มันใช้งานได้ แต่ก็ยังคงปิด จุดยึดหลักก่อนที่จุดยึดลูกจะปรากฏขึ้น ซึ่งอาจเป็นสาเหตุที่ทำให้คำแนะนำเครื่องมือหยุดทำงาน

HTML:

<div class="tooltip_templates">
<a class="tooltip-container">
  This div has a tooltip with HTML when you hover over it!
  <span class="tooltip_content">
    <img src="myimage.png" /> <strong>This is the content of my tooltip!</strong>
  </span>
</a>

Javascript:

$(document).ready(function() {
  $('.tooltip-container').tooltipster({
    functionInit: function (instance, helper) {
      var content = $(helper.origin).find('.tooltip_content').detach();
      instance.content(content);
    }
  });
});

ไฟล์ที่จะรวม:

ซอทำงาน:

https://jsfiddle.net/h6Lrvqay/1/

person Josh Whitlow    schedule 27.08.2016
comment
ขอขอบคุณสำหรับการตอบสนองของคุณ. ฉันเพิ่มโค้ด JavaScript ของฉันแล้ว อัปเดตคำถามของฉันเพื่อชี้แจงสถานการณ์ที่แน่นอนของปัญหาที่เกิดขึ้น - person 1man; 27.08.2016
comment
ฉันอัปเดตคำตอบตามข้อมูลใหม่ที่คุณให้ฉัน หวังว่านี่จะช่วยแก้ปัญหาได้ - person Josh Whitlow; 27.08.2016
comment
ก่อนอื่น โปรดทราบว่าเราควรกำหนดแท็กหลักเป็นไฮเปอร์ลิงก์หรือแท็กอื่นที่ไคลเอ็นต์สามารถมุ่งเน้นที่การใช้แป้นพิมพ์ ไม่เช่นนั้นฉันคิดว่ามันจะมีปัญหาในการเข้าถึง สิ่งที่คุณตอบหมายความว่าโดยพื้นฐานแล้วไม่มีวิธีเพิ่มไฮเปอร์ลิงก์ในคำแนะนำเครื่องมือ ขวา? - person 1man; 27.08.2016

จากความกังวลของ Josh Whitlow เกี่ยวกับสมอที่ซ้อนกัน ฉันคิดว่าฉันพบวิธีแก้ปัญหาสำหรับสิ่งนี้:

เราควรกำหนด "tooltip_content" ภายนอก "tooltip-container" หรือไม่

นี่คือรหัส html:

<div class="tooltip-parent">
   <a class="tooltip-container">
      This div has a tooltip with HTML when you hover over it!
   </a>
   <span class="tooltip_content">
      <a href="/th#"></a><img src="myimage.png" /> <strong>This is the content of my tooltip!</strong>
   </span>
</div>

นี่คือรหัสจาวาสคริปต์:

$('.tooltip-container').tooltipster({
  functionInit: function (instance, helper) {
    var content = $(helper.origin).parent().find('.tooltip_content').detach();
    instance.content(content);
  }
});

นี่คือ JSFiddle:

https://jsfiddle.net/c3ddf8bm/8/

person 1man    schedule 27.08.2016