问题描述
- 两个js代码放在一个页面中冲突
-
<script> $.fn.smartFloat = function() { var position = function(element) { var top = element.position().top, pos = element.css("position"); $(window).scroll(function() { var scrolls = $(this).scrollTop(); if (scrolls > top) { if (window.XMLHttpRequest) { element.css({ position: "fixed", top: 0 }); } else { element.css({ top: scrolls }); } }else { element.css({ position: "absolute", top: top }); } }); }; return $(this).each(function() { position($(this)); }); }; //绑定 $("#float").smartFloat(); <%if ShowRs("Item8")=2 then%> $.fn.smartFloat1 = function() { var position = function(element) { var top = element.position().top, pos = element.css("position"); $(window).scroll(function() { var scrolls = $(this).scrollTop(); if ((scrolls > top-50) && ((scrolls < $('#tourtabcont4').offset().top-100))) { if (window.XMLHttpRequest) { element.css({ position: "fixed", top: 50 }); } else { element.css({ top: scrolls }); } }else { element.css({ position: "absolute", top: top }); } }); }; return $(this).each(function() { position($(this)); }); }; //绑定 $("#float1").smartFloat1(); <%end if%> $(document).ready(function () { $(window).scroll(function () { var items = $(".tourcontent_20"); var menu = $(".tourcontent_17"); var top = $(document).scrollTop(); var currentId = ""; //滚动条现在所在位置的item id items.each(function () { var m = $(this); //注意:m.offset().top代表每一个item的顶部位置 if (top > m.offset().top - 100) { currentId = "#" + m.attr("id"); } else { return false; } }); var currentLink = menu.find(".tourcontent_18"); if (currentId && currentLink.find("a").attr("href") != currentId) { currentLink.removeClass("tourcontent_18"); menu.find("[href=" + currentId + "]").parent().addClass("tourcontent_18"); } <%if ShowRs("Item8")=2 then%> var itemss = $(".tourcontent_27"); var menus = $(".tourcontent_24"); var tops = $(document).scrollTop(); var currentIds = ""; //滚动条现在所在位置的item id itemss.each(function () { var ms = $(this); //注意:m.offset().top代表每一个item的顶部位置 if (tops > ms.offset().top - 100) { currentIds = "#" + ms.attr("id"); $(".tourcontent_24") } else { return false; } }); var currentLinks = menus.find(".tourcontent_25"); if (currentIds && currentLinks.find("a").attr("href") != currentIds) { currentLinks.removeClass("tourcontent_25"); menus.find("[href=" + currentIds + "]").parent().addClass("tourcontent_25"); } <%end if%> }); }); </script>
<script type="text/javascript"> var $ = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } return destination; } var Calendar = Class.create(); Calendar.prototype = { initialize: function(container, options) { this.Container = $(container);//容器(table结构) this.Days = [];//日期对象列表 this.SetOptions(options); this.Year = this.options.Year || new Date().getFullYear(); this.Month = this.options.Month || new Date().getMonth() + 1; this.SelectDay = this.options.SelectDay ? new Date(this.options.SelectDay) : null; this.onSelectDay = this.options.onSelectDay; this.onToday = this.options.onToday; this.onFinish = this.options.onFinish; this.Draw(); }, //设置默认属性 SetOptions: function(options) { this.options = {//默认值 Year: 0,//显示年 Month: 0,//显示月 SelectDay: null,//选择日期 onSelectDay: function(){},//在选择日期触发 onToday: function(){},//在当天日期触发 onFinish: function(){}//日历画完后触发 }; Extend(this.options, options || {}); }, //当前月 NowMonth: function() { this.PreDraw(new Date()); }, //上一月 PreMonth: function() { this.PreDraw(new Date(this.Year, this.Month - 2, 1)); }, //下一月 NextMonth: function() { this.PreDraw(new Date(this.Year, this.Month, 1)); }, //上一年 PreYear: function() { this.PreDraw(new Date(this.Year - 1, this.Month - 1, 1)); }, //下一年 NextYear: function() { this.PreDraw(new Date(this.Year + 1, this.Month - 1, 1)); }, //根据日期画日历 PreDraw: function(date) { //再设置属性 this.Year = date.getFullYear(); this.Month = date.getMonth() + 1; //重新画日历 this.Draw(); }, //画日历 Draw: function() { //用来保存日期列表 var arr = []; //用当月第一天在一周中的日期值作为当月离第一天的天数 for(var i = 1, firstDay = new Date(this.Year, this.Month - 1, 1).getDay(); i <= firstDay; i++){ arr.push(0); } //用当月最后一天在一个月中的日期值作为当月的天数 for(var i = 1, monthDay = new Date(this.Year, this.Month, 0).getDate(); i <= monthDay; i++){ arr.push(i); } //清空原来的日期对象列表 this.Days = []; //插入日期 var frag = document.createDocumentFragment(); while(arr.length){ //每个星期插入一个tr var row = document.createElement("tr"); //每个星期有7天 for(var i = 1; i <= 7; i++){ var cell = document.createElement("td"); cell.innerHTML = " "; if(arr.length){ var d = arr.shift(); if(d){ cell.innerHTML = d; this.Days[d] = cell; var on = new Date(this.Year, this.Month - 1, d); //判断是否今日 this.IsSame(on, new Date()) && this.onToday(cell); //判断是否选择日期 this.SelectDay && this.IsSame(on, this.SelectDay) && this.onSelectDay(cell); } } row.appendChild(cell); } frag.appendChild(row); } //先清空内容再插入(ie的table不能用innerHTML) while(this.Container.hasChildNodes()){ this.Container.removeChild(this.Container.firstChild); } this.Container.appendChild(frag); //附加程序 this.onFinish(); }, //判断是否同一日 IsSame: function(d1, d2) { return (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate()); } } </script>
这两段js代码放在同一个页面中有冲突,我对js不是很熟,大家帮看看是哪里有冲突
解决方案
终于找出问题所在了,是js构造函数的$和jquery的$的冲突,把js构造函数的$换成具体的函数名就可以了,我是百度搜索到http://www.diandiba.com/News/Show.asp?ItemID=479照片文章解决的,分享给大家
解决方案二:
为什么要在一个页面用2个script呢,用一个不可以吗?只要触发的条件修好就可以了把
解决方案三:
找出冲突的地方,重新命名。
解决方案四:
肯定是哪里冲突,我只知道两种方法测试,一种是用alert一步步弹出。一种是js debug。
时间: 2024-10-02 13:28:12