2011-04-20 88 views
0

我有一個引用.js文件的html文件。 js文件有一個定義爲插件的jQuery函數。在html文件中有一些超鏈接,點擊時應展開詳細描述(隱藏在頁面上)。現在這種安排在IE8下工作,但不在Fire Fox上。我最初有Firefox 3.6.13 ....並將其升級到Firefox 4 ...它不適用於任何版本。這是一個虛擬的HTML文件(保持簡單)和js文件內容jQuery插件功能在Firefox中不起作用...但在IE中工作

HTML:

<html> 
<head> 
    <style> 
    span { background:#def3ca; padding:3px; float:left; } 
    </style> 
    <script src="http://code.jquery.com/jquery-1.5.js"></script> 
    <script src="path/to/jquery/file/jquery.compand.js"></script> 
</head> 
<body> 
<table width="100%" border="0" cellspacing="5" cellpadding="5"> 
    <tr> 
    <td width="13%" valign="top">Job Code&nbsp;</td> 
    <td width="87%" valign="top">Job Title&nbsp;</td> 
    </tr> 
    <tr> 
    <td valign="top">2223&nbsp;</td> 
    <td valign="top"><a class="click" id="2223" href="#">Systems Analyst &nbsp;</a> 
     <div class="text" id="2223text"><span>This text was hidden before.</span></div> 
    </td> 
    </tr> 
<script>$(".click").compand();</script> 
</body> 
</html> 

,這裏是包含jQuery插件定義COMPAND()函數我的js文件。

(function($){ 
    $.fn.compand = function(){ 
     return this.click(function() { 
      alert('item id: '+this.id); 
      $("#"+this.id+"text").toggle("slow"); 
     });  
    }; 
})(jQuery); 

我是,如果不是有我有嵌入在HTML文件中下面的代碼標籤之間的.js文件什麼進一步的驚喜....它運作良好,在Firefox和IE8都。下面是該腳本:

<script> 
$('.click').click(function() { 
    // get id of the clicked item 
    alert('id clicked: ' + this.id); 
    $("#"+this.id+"text").toggle('slow', 
     function() { 
      alert('Animation complete.'); 
     }); 
}); 
</script> 

我需要有這個功能的jQuery插件,這樣我不就幾個html頁面複製上面的代碼。感謝閱讀至今!任何指針讚賞。

回答

0

我發現了這種行爲的原因,我很尷尬地提到我是如何搞砸的。 Luceos感謝你的投入!他們肯定幫了我。

經過又一天的打破我的頭腦......我發現jquery插件的路徑是Firefox發現很難找到的東西。讓我在這裏解釋一下: 我有以下設置。我的桌面上同時有.html和.js文件,正如你在下面看到的,我提供了完全合格的路徑來指向我的jQuery函數。

<script src="C:\\Users\\******\\***\\testjQuery\\jquery.compand.js"></script>(視窗分隔) OR <script src="C:/Users/****/****/testjQuery/jquery.compand.js"></script>(Unix的分離器)

IE8能夠推測都拿起js文件正確但Firefox(3.6.13和4.0)沒有。

相反,當我提供,即在同一個上下文的相對路徑:

<script src=jquery.compand.js"></script> 

(因爲我的.html和.js文件是完全在同一個文件夾) 現在這個工作在Firefox和IE 8

0
(function($){ 
    $.fn.compand = function(){ 
     return this.click(function() { 
      var openID = jQuery(this).attr("id"); 
      $("#"+openID+"text").toggle("slow"); 
     });  
    }; 
})(jQuery); 

這種方法怎麼樣,你會得到什麼樣的錯誤?

+0

嗨Luceos感謝您的快速響應!我通過替換jQuery插件中的函數進行了測試,我仍然得到了相同的結果,即在IE8中可用,但在Firefox 4或3.6.16中都沒有。我已經安裝了螢火蟲,它指向調用插件的html文件中的以下行。但不明確提及任何內容。這是它說:$(「。click」)。compand不是函數 [Break On This Error] $(「。click」)。compand(); – Vikram 2011-04-20 15:16:55

+0

你在哪裏插入compand javascript?包含jquery後? – Luceos 2011-04-20 16:44:06

+0

嗨Luceos,再次感謝您的迴應!根據我的html文件,我在中包含compand javascript,並在中調用此.js。請參考我在原始問題中發佈的示例html文件。我希望我回答你的問題,請讓我知道 – Vikram 2011-04-22 18:29:43

相關問題