0
問題解決:我刪除了第一個功能,因爲它不需要,現在它可以在所有瀏覽器中運行。感謝帖子雖然!相同的瀏覽器版本,2個不同的javascript處理
我在這裏的問題是,我有一個服務器上沒有問題,在IE瀏覽器是什麼那麼曾經完美運行的JavaScript。但在另一臺服務器上給我2 IE錯誤。
- 它聲稱我的offset()。top不是空或不是對象。
- 我的淡入和淡出效果甚至沒有激活。
然後我又有一個很大的問題,那就是在FireFox中它的全部工作。
OPS:這是一個webpart,所以在網站上運行的額外的JavaScript可能會介入JavaScript我試圖在這裏執行。但我不確定。
我已經在IE 8.0.7600.16385這個服務器上測試了這個webpart。
腳本:
<script type="text/javascript"
src="/_layouts/Progressive/Javascripts/jquery-1.4.3.js"></script>
<script type="text/javascript">
(function($) {
$.fn.goTo = function() {
// This is where IE on the second server claims the error to be.
$('html, body').animate({scrollTop: $(this).offset().top + 'px'}, 'fast');
return this;
}
})(jQuery);
function showParagraphs(sender) {
var id = sender.getAttribute('href');
if ($('#<%=paragraph.ClientID%>').hasClass("readable")) {
$('#<%=paragraph.ClientID%>').removeClass("readable");
highlightSelected(id);
}
else {
$('#<%=paragraph.ClientID%>').addClass("readable");
rmvClass(id);
}
};
function highlightSelected(id) {
$(id).goTo();
$(id).addClass("reading");
// This part is what isn't activated on the second server.
$('.reading').fadeOut(400).fadeIn(400).fadeOut(400).fadeIn(400);
// .reading only adds a gray background to the DIV.
};
function rmvClass(id) {
$('div').each(function() {
if ($(this).hasClass("reading")) {
$(this).removeClass("reading");
}
});
}
function toTop() {
$('div').each(function() {
$(this).removeClass("reading");
});
$('#<%=paragraph.ClientID%>').addClass("readable");
}
$(document).ready(function() {
$('#<%=q.ClientID%>').find('dd').hide().end().find('dt').click(function() {
$(this).next().slideToggle("fast");
});
$("#<%=q.ClientID%> dt").click(function() {
if ($(this).hasClass("selected")) {
$(this).removeClass("selected");
}
else {
$(this).addClass("selected");
}
});
});
</script>
任何想法或建議?
你應該做的一件事是升級到jQuery 1.4.4 - 1.4.3版本中有一些令人討厭的錯誤。 – Pointy 2011-01-27 17:02:01
在你的第一個函數中,你正在傳遞var`jQuery`,所以你可以在函數中使用`$`,然後使用`$`,而在其他函數中沒有任何包裝,這告訴我你正在嘗試使用jquery以兩種不同的方式(通過`$`和`jQuery`)。這是打算? – JustcallmeDrago 2011-01-27 17:05:04