我的网页中引用两个JS文件:jquery.js和page.jspage.js 中的一段代码是控制选中字符,改变样式的(代码如下)
<span id="foot_search_m_5" onclick="setFModule(5)" class="">产品</span> | <span id="foot_search_m_6" onclick="setFModule(6)" class="">求购</span> | <span id="foot_search_m_25" onclick="setFModule(25)" class="">招标</span>function setFModule(id) {
var name = $('foot_search_m_'+id).innerHTML;
$('foot_moduleid').value = id;
var ss = $('foot_search_m').getElementsByTagName('span');
for(var i=0;i<ss.length;i++) {if(ss[i].id == 'foot_search_m_'+id) {ss[i].className = 'f_b';} else {ss[i].className = '';}}
}
出现的问题是,网页中只要引用了jquery.js 这个文件,则page.js中的setFModule在点击网页时就不起作用,去掉就能用了。而jquery.js又不能去掉不用,jquery.js控制网页中另一个弹出式菜单。如何修改一下function setFModule(id)使其兼容呢?谢谢

解决方案 »

  1.   

    jQuery定义了“$”,page.js也定义了“$”。
    简单的处理就是把page.js的“$”改名。function setFModule(id) {
        var name = document.getElementById('foot_search_m_'+id).innerHTML;
        document.getElementById('foot_moduleid').value = id;
        var ss = document.getElementById('foot_search_m').getElementsByTagName('span');
        for(var i=0;i<ss.length;i++) {if(ss[i].id == 'foot_search_m_'+id) {ss[i].className = 'f_b';} else {ss[i].className = '';}}
    }
      

  2.   

    function setFModule(id) {
        var name = $('foot_search_m_'+id).innerHTML;
        $('foot_moduleid').value = id;
        var ss = $('foot_search_m').getElementsByTagName('span');
        for(var i=0;i<ss.length;i++) {if(ss[i].id == 'foot_search_m_'+id) {ss[i].className = 'f_b';} else {ss[i].className = '';}}
    }选择器和语法都不对呀,你的page.js是不是用了其他插件,或者已经把"$"占用了,如果按jquery的写法,应该是下面
    function setFModule(id) {
        var name = $('#foot_search_m_'+id).html();
        $('#foot_moduleid').val(id);
                var ss = $('#foot_search_m').find('span').each(function() {
                    if (this.id.indexOf('foot_search_m_') == 0) {
                        ss[i].className = 'f_b';
                    } else {
                        ss[i].className = '';
                    }
                });
    }
      

  3.   

    刚才看错了        function setFModule(id) {
                var name = $('#foot_search_m_' + id).html();
                $('#foot_moduleid').val(id);
                $('#foot_search_m').find('span').attr("className", "");
                $(#'foot_search_m_' + id).attr("className", "f_b");
            }
      

  4.   

    写代码的时候jquery用jquery代替$,这个符号冲突了吧?