我有一个引用.js文件的html文件。 js文件有一个定义为插件的jQuery函数。 html文件中有一些超链接...当点击时应展开显示详细描述(隐藏在页面上)。现在这种安排在IE8下运行,但在Fire Fox上没有。我最初使用Firefox 3.6.13 ....并将其升级到Firefox 4 ...它不适用于任何一个版本。这是一个虚拟的html文件(为了简单起见)和.js文件内容
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 </td>
<td width="87%" valign="top">Job Title </td>
</tr>
<tr>
<td valign="top">2223 </td>
<td valign="top"><a class="click" id="2223" href="#">Systems Analyst </a>
<div class="text" id="2223text"><span>This text was hidden before.</span></div>
</td>
</tr>
<script>$(".click").compand();</script>
</body>
</html>
这是我的js文件,包含定义compand()函数的jQuery插件。
(function( $ ){
$.fn.compand = function(){
return this.click(function() {
alert('item id: '+this.id);
$("#"+this.id+"text").toggle("slow");
});
};
})(jQuery);
更令我惊讶的是,如果不是拥有.js文件,我在代码之间的html文件中嵌入了以下代码......它在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 :(得分:0)
(function( $ ){
$.fn.compand = function(){
return this.click(function() {
var openID = jQuery(this).attr("id");
$("#"+openID+"text").toggle("slow");
});
};
})(jQuery);
这种方法怎么样,你会得到什么错误?
答案 1 :(得分:0)
我找到了这种行为的原因,而且我很尴尬地提到我是如何搞砸的。 Luceos感谢您的投入!他们肯定帮助了我。
又过了一天我的脑袋...我发现路径到jquery插件是Firefox发现难以弄清楚的东西。我在这里解释一下: 我有以下设置。我的桌面上有.html和.js文件,如下所示,我提供了完全限定路径来指向我的jQuery函数。
<script src="C:\\Users\\******\\***\\testjQuery\\jquery.compand.js"></script>
(Windows分隔符)
要么
<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