簡體   English   中英

通過Ajax將內容加載到工具提示中

[英]Loading content into tooltip via ajax

我正在使用插件通過ajax將內容加載到工具提示中。 理解並開始使用它非常簡單。 這是我的jsp頁面,我希望將鼠標懸停在鏈接上時將內容動態加載到工具提示中。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<html>
<head>
  <script src="jquery.js" type="text/javascript"></script>
<script src="jquery.hoverIntent.js" type="text/javascript"></script> <!-- optional -->
<script src="jquery.cluetip.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('a.basic').cluetip();
  });
  function web()
  {
      alert('asffdsr');
  }
</script>
</head>
<table border="1">
<tr>
<th>Question name</th>
<th>Group ID</th>
<th>opt1(#votes)</th>
<th>opt2(#votes)</th>
<th>opt3(#votes)</th>
<th>opt4(#votes)</th>
<tr>

    <c:forEach var="questions" items="${questionslist}">

                <tr>
                    <td><a  class="basic" href="http://www.google.com" rel="http://www.google.com" ><c:out value="${questions.question}"/></a></td>
....

如果您查看上述代碼,則會在底部找到<a>標記,其標記為class = basic並且要通過ajax加載到工具提示中的頁面是http://www.google.com 。腳本src和javascript函數。 我已經將所有js文件導入到包含jsp頁面的文件夾中。
但是由於某種原因,工具提示沒有出現。 這里有什么問題以及如何糾正? 還有什么方法可以檢查是否所有3個js文件都已導入頁面?
以下結構描述了css和jsp文件所在的位置。 css和js字段位於Web內容文件夾內,而jsp文件位於
網頁內容
網絡信息
JSP文件
CLUETIP CSS和JAVASCRIPTFILES ..



這是屏幕截圖。 如您所見, js字段加載。 但是正在檢索css文件。 在此處輸入圖片說明


編輯#1
該頁面是通過div中的ajax加載的。 因此,在單擊查看頁面源代碼時,我們無法看到div中內容的源代碼。

編輯#2
即使使用CDN,也不會導入jquery.js文件,即在開發人員工具的“網絡”標簽中,沒有對javascript文件進行調用。 我在開頭部分給出了script src行。

編輯:根據對問題的編輯,這是怎么回事。 當您通過Ajax將內容加載到頁面上時,該內容中的任何腳本標簽都不會執行。 參見以下問題: 通過AJAX加載腳本標簽以獲取更多詳細信息。 請務必閱讀所有答案,因為解決方案可能取決於您的特定情況。

原始答案

您正在嘗試從您的網站向另一個域google.com發出ajax請求。 瀏覽器不允許這樣做,這稱為跨域請求。 根據qtip錯誤處理程序:

error: function(xhr, textStatus) {
    if ( options.ajaxCache && !caches[cacheKey] ) {
        caches[cacheKey] = {status: 'error', textStatus: textStatus, xhr: xhr};
    }

    if (isActive) {
        if (optionError) {
            optionError.call(link, xhr, textStatus, $cluetip, $cluetipInner);
        } else {
            $cluetipInner.html('<i>sorry, the contents could not be loaded</i>');
        }
    }
}

您應該得到以下內容: <i>sorry, the contents could not be loaded</i>到您的工具提示中(請參閱jsfiddle )。 檢查錯誤控制台,最明顯的答案是您在其中一個文件上收到404錯誤,該錯誤應顯示在所使用的任何應用程序的開發人員工具中。 看看這把我用不存在的javascript文件替換“ cluetip”的小提琴發生了什么。 chrome開發者控制台如下所示:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM