html
<head>
<script src="<!--{$skinpath}-->js/jquery-1.4.3.min.js" type="text/javascript"></script>
<script src="<!--{$skinpath}-->js/shop.js" type="text/javascript"></script>
<script src="<!--{$skinpath}-->js/thickbox-compressed.js" type="text/javascript"></script>
<link href="<!--{$skinpath}-->css/thickbox.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<!--{$skinpath}-->js/jquery-1.8.2.min.js"></script>
</head>
<body>
<div class="index_nav ZYR clear">
    <ul>
        <li  onmouseover="dropshow(this,'.index_nav_inf')" onmouseout="drophide(this,'.index_nav_inf')"><a href="solution.php?mod=list&cid=1" class="nav">111111</a>
            <div class="index_nav_inf" style="left:50px; width:298px;">
(这是一个列表)
            </div>
        </li>
<script type="text/javascript">
function click_taobao(){
var province_temp=document.getElementById('province_id').innerHTML;
javascript:PopResellerList(province_temp);
}
</script>
</body>
以上是我的html中调用的js,其中shop.js是我自己写的一个方法,主要用于点击图片弹出一个div  
  shop.js主要代码如下:
//遮罩背景设置
var sWidth,sHeight;
sWidth = document.body.scrollWidth;
sHeight = document.body.scrollHeight;
//创建遮罩背景
var maskObj = document.createElement("div");
maskObj.setAttribute('id','maskdiv');
maskObj.style.position = strPosition;
maskObj.style.top = "0";
maskObj.style.left = "0";
maskObj.style.background = "#777";
maskObj.style.filter = "Alpha(opacity=30);";
maskObj.style.opacity = "0.3";
maskObj.style.width = sWidth+"px";
maskObj.style.height = sHeight+"px";
maskObj.style.zIndex = "1000";
document.body.appendChild(maskObj);
//创建弹出窗口
var comeoutdiv = document.createElement("div")
comeoutdiv.setAttribute("id","comeoutdiv");
comeoutdiv.style.position =strPosition;
comeoutdiv.style.top = ((screen.availHeight - msgh) / 4+document.body.scrollTop) + "px";
comeoutdiv.style.left = ((document.body.clientWidth - msgw)/ 2+document.body.scrollLeft ) + "px";
comeoutdiv.style.width = msgw + "px";
comeoutdiv.style.height = msgh + "px";
comeoutdiv.style.zIndex = "1001";
//创建内容
var contentdiv = document.createElement("div");
contentdiv.setAttribute("id","contentdiv");
contentdiv.style.padding = "0px";
contentdiv.style.lineHeight = "3em";
contentdiv.innerHTML = con;
//生成窗口
document.body.appendChild(comeoutdiv);
document.getElementById("comeoutdiv").appendChild(contentdiv);
图片和点击事件是在数据库中保存的字段
<a id="kkk" href="javascript:click_taobao();"><img border="0" alt="" src="./data/attachment/201301/28/691580e30e31acb089c330cf69a3a5e9.jpg" /><a>现在问题来了   如果我把自己写的shop.js放在jquery库之前,那么点击图片就什么都没有 只有遮罩(好像不是我代码里的,因为我删了遮罩还是会有) 如果我把自己写的shop.js放在jquery库之后,那么onmouseover,onmouseout等就不能显示下拉列表   查了一下  可能是引用起了冲突,用了jquery.noConflict等方法还是不好用,求高手赐教!!!!!!!!我白天在线  QQ 624123446
javascriptjshtmljqueryclass

解决方案 »

  1.   

    1.注意避免全局变量冲突
    建议用闭包包一下
    写成
    (function(){
        ...//你的代码
    })();
    形式,这样不会污染全局变量
    2.shop.js应加载在页面底部,这样才能保证dom已生成
      

  2.   

    楼上说的写成闭包的形式,是指把我的click方法写成闭包还是把我的js文件中的方法写成闭包,能不能具体说点,还有shop.js加载在底部,我加载在<body></body>之间的时候,写了个src="路径",然后方法都进不去,删掉src,才能进去方法。本人新手,还请 不吝赐教。3Q
      

  3.   


    LZ可以把shop.js代码全部写在闭包里,这样就如1楼说的,避免了冲突
      

  4.   

    shop.js写在闭包中,并把该script标签加载在</body>之后,</html>之前
      

  5.   

    一下是我按照大家的建议改的:
    html
    <head>
    <script src="<!--{$skinpath}-->js/jquery-1.4.3.min.js" type="text/javascript"></script>
    <script src="<!--{$skinpath}-->js/thickbox-compressed.js" type="text/javascript"></script>
    <link href="<!--{$skinpath}-->css/thickbox.css" media="screen" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="<!--{$skinpath}-->js/jquery-1.8.2.min.js"></script>
    </head>
    <body>
    <div class="index_nav ZYR clear">
        <ul>
            <li  onmouseover="dropshow(this,'.index_nav_inf')" onmouseout="drophide(this,'.index_nav_inf')"><a href="solution.php?mod=list&cid=1" class="nav">111111</a>
                <div class="index_nav_inf" style="left:50px; width:298px;">
    (这是一个列表)
                </div>
            </li>
    </body>
    <script src="<!--{$skinpath}-->js/shop.js" type="text/javascript" charset="gbk"></script>
    <script type="text/javascript">
    var click_taobao=function(){
    var province_temp=document.getElementById('province_id').innerHTML;
    PopResellerList(province_temp);
    }
    </script>
    </html>
    shop.js主要代码如下:
    var PopResellerList=function (strprovince){
    //document.write("<style type=\"text/css\">.close{float:right;cursor:default}</style>")
    ………(省略创建DIV等弹出框代码)
    var CloseMsg =function(){
    //移除对象
    document.body.removeChild(document.getElementById("maskdiv"));
    document.getElementById("comeoutdiv").removeChild(document.getElementById("contentdiv"));
    document.body.removeChild(document.getElementById("comeoutdiv"));
    }(这个是关闭方法)
    }我试了一下  还是不行   和以前一样,onmouseover,onmouseout依旧不好用。我确定shop.js中没有涉及到onmouseover这些啊。请大神们再帮忙看看啊
      

  6.   

    shop.js写在闭包中,并把该script标签加载在</body>之后,</html>之前看五楼我的回帖,帮忙再看看 谢谢!
      

  7.   


    LZ可以把shop.js代码全部写在闭包里,这样就如1楼说的,避免了冲突
     看五楼我的回帖   有时间帮忙看看吧