<div data-options="region:'west',title:'管理系统练习左侧列表',split:true" href="left.jsp" style="width: 230px;">
    </div>
    <div data-options="region:'center',title:'管理系统练习中间主界面'" id="zhrefId"  href="CenterPage.jsp" style="background: #eee; overflow: hidden;">
    </div>在left.jsp页面中如何通过id="zhrefId"替换href页面

解决方案 »

  1.   

    $(function(){
        $('#zhrefId').attr('href','http://www.baidu.com');
    });
      

  2.   


    这样不知道为什么没有反应,之前这样写过,唯一的区别
    jQuery(document).ready(function(){ $("#adubytreeStrengthen").AdubyTree({
    dataType:"json",
    checkboxes:true,
    data:jsondata,
    treeType:"strengthen",
    onClick:function(node){
    //alert(node.id);
    $('#zhrefId').attr('href',‘node-0.jsp’);
    }
    });
    });
      

  3.   

    jquery 包是否载入?
    firebug 控制台下看看报什么错了。
      

  4.   


    Uncaught TypeError: Cannot read property 'defaults' of undefined 
      

  5.   


    我把代码贴出来吧?index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet" />
        <link href="jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" />
        <script src="jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
        <script src="js/JavaScript.js"></script><!--这个是扩展Jquery的方法-->
        <script src="jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
        <script src="jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js"></script>
    </head>
    <body id="layoutbody" class="easyui-layout">
        <div data-options="region:'north',title:'jquery管理系统练习',split:true" style="height: 100px;">
        </div>

        <div data-options="region:'west',title:'管理系统练习左侧列表',split:true" href="left.jsp" style="width: 230px;">
        </div>

        <div data-options="region:'center',title:'管理系统练习中间主界面'" id="zhrefId"  href="CenterPage.jsp" style="background: #eee; overflow: hidden;">
        </div>

        <div data-options="region:'east',split:true" title="管理系统练习右侧菜单" style="width:180px;"></div>
    </body>
    </html>
      

  6.   


    ----------------------------》left.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><script src="js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="js/jquery.adubytree.js" type="text/javascript"></script>
    <link rel="StyleSheet" href="css/adubytree.css" type="text/css" />
    <script type="text/javascript">
    jQuery(document).ready(function(){ 
    var jsondata ={id : "node-0" , data: "管理系统练习",
    children: [
    { id : "node-1" ,data: "管理系统练习1",
    children: [
    { id : "node-1-1" ,data: "管理系统练习1.1",
    children: [
    { id : "node-1-1-1" ,data: "管理系统练习1.1.1"},
    { id : "node-1-1-2" ,data: "管理系统练习1.1.2"}
    ]},
    {id : "node-1-2" , data: "管理系统练习1.2"},
    {id : "node-1-3" ,data: "管理系统练习1.3"}

    },
    {id : "node-2" ,data: "管理系统练习2"},
    {id : "node-3", data: "管理系统练习3",
    children: [
    { id : "node-3-1" ,data: "管理系统练习3.1",
    children: [
    {id : "node-3-1-1" , data: "管理系统练习3.1.1",
    children: [
    { id : "node-3-1-1-1" , data: "管理系统练习3.1.1-1"},
    { id : "node-3-1-1-2" , data: "管理系统练习3.1.1-2"}

    }

    }

    }

    };

    $("#adubytreeStrengthen").AdubyTree({
    dataType:"json",
    checkboxes:true,
    data:jsondata,
    treeType:"strengthen",
    onClick:function(node){
    //alert(node.id);
    $('#zhrefId').attr('href','http://www.baidu.com');
    }
    }); });</script>
    <div align="left">
    <table border="0">
    <tr>
    <td  valign ="top"><div id="adubytreeStrengthen"></div></td>
    </tr>
    </table> 
    <%--<ul id="myMenu" class="contextMenu">
    <li class="edit"><a href="#edit">Edit</a></li>
    <li class="cut separator"><a href="#cut">Cut</a></li>
    <li class="copy"><a href="#copy">Copy</a></li>
    <li class="paste"><a href="#paste">Paste</a></li>
    <li class="delete"><a href="#delete">Delete</a></li>
    <li class="quit separator"><a href="#quit">Quit</a></li>
    </ul>--%>
    </div>
      

  7.   


    -------------------------------------------------------》CenterPage.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <script type="text/javascript" charst="utf-8">
        $(function () {
            /*扩展Editors的datetimebox方法*/
            $.extend($.fn.datagrid.defaults.editors, {
                datetimebox: {//为方法取名
                    init: function (container, options) {
                        var editor = $('<input />').appendTo(container);
                        options.editable = false;//设置其不能手动输入
                        editor.datetimebox(options);
                        return editor;
                    },
                    getValue: function (target) {//取值
                        return $(target).datetimebox('getValue');
                    },
                    setValue: function (target, value) {//设置值
                        $(target).datetimebox('setValue', value);
                    },
                    resize: function (target, width) {
                        $(target).datetimebox('resize', width);
                    },
                    destroy: function (target) {
                        $(target).datetimebox('destroy');//销毁生成的panel
                    }
                }
            });
        });
        var editFlag = undefined;//设置一个编辑标记
        //因为layout框架指向href时,只取html页面body中间的部分,所以该页面这样写即可
        //有datagrid包含属性较多,所以尽量使用js的方式初始化datagrid框架
        $(function () {
            $("#dg").datagrid({
                rowStyler: function (index, row) {//与列样式用法相同
                    if (row.code == 001) {
                        return 'background-color:#6293BB;color:#fff;';
                    }
                },
                url: "", //指向一个一般处理程序或者一个控制器,返回数据要求是Json格式,直接赋值Json格式数据也可,我以demo中自带的Json数据为例,就不写后台代码了,但是我会说下后台返回的注意事项
                iconCls: "icon-add",
                fitColumns: false, //设置为true将自动使列适应表格宽度以防止出现水平滚动,false则自动匹配大小
                //toolbar设置表格顶部的工具栏,以数组形式设置
                idField: 'id', //标识列,一般设为id,可能会区分大小写,大家注意一下
                loadMsg: "正在努力为您加载数据", //加载数据时向用户展示的语句
                pagination: true, //显示最下端的分页工具栏
                rownumbers: true, //显示行数 1,2,3,4...
                pageSize: 10, //读取分页条数,即向后台读取数据时传过去的值
                pageList: [10, 20, 30], //可以调整每页显示的数据,即调整pageSize每次向后台请求数据时的数据
                //由于datagrid的属性过多,我就不每个都介绍了,如有需要,可以看它的API
                sortName: "name", //初始化表格时依据的排序 字段 必须和数据库中的字段名称相同
                sortOrder: "asc", //正序
                frozenColumns: [[
                    //冻结列 就是指定显示参照列 使其不会出现滚动条
                    {
                        field: 'name',
                        title: 'Name',
                        width: 100,
                        sortable: true,
                        editor: {
                            //设置其为可编辑
                            type: 'validatebox',//设置编辑格式
                            options: {
                                required: true//设置编辑规则属性
                            }
                        }, formatter: function (value, rowData, index) {//value:字段的值。rowData:行数据。rowIndex:行索引。
                            return "<span title='" + value + "'>" + value + "<span>";//实现鼠标放到单元格上时的提示
                            //return "*****";//实现显示星号样式
                        }
                    }//sortable:true点击该列的时候可以改变升降序
                ]],
                columns: [[
                    {
                        field: 'code',
                        title: '操作列',
                        width: 100, formatter: function (value, rowData, index) {//value:字段的值。rowData:行数据。rowIndex:行索引。
                            return "<button onclick='clickFunc(" + index + ");'>操作</button>";//将索引传给方法,可以选中该行
                        }
                        //editor: {
                        //    //设置其为可编辑
                        //    type: 'validatebox',//设置编辑样式 自带样式有:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree 可自行扩展
                        //    options: {}
                        //}                }, {
                        field: 'addr',
                        title: 'addr',
                        width: 100,
                        editor: {
                            //设置其为可编辑
                            type: 'datetimebox',//这里我们将进行一个datetimebox的扩展
                            options: {
                                required: true//设置编辑规则属性
                            }
                        },
                        styler: function (value, rowData, index) {//设置列样式(列属性API),value列的值,index列索引,rowData行数据
                            if (index < 3) {
                                return 'background-color:#ffee00;color:red;';
                            }
                        }
                    }
                ]],//这里之所以有两个方括号,是因为可以做成水晶报表形式,具体可看demo
                toolbar: [{
                    //在dategrid表单的头部添加按钮
                    text: "添加",
                    iconCls: "icon-add",
                    handler: function () {
                        if (editFlag != undefined) {
                            $("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
                        }
                        if (editFlag == undefined) { //防止同时打开过多添加行
                            $("#dg").datagrid('insertRow', {
                                //在指定行添加数据,appendRow是在最后一行添加数据
                                index: 0, // 行数从0开始计算
                                row: {
                                    code: '',
                                    name: '请输入姓名',
                                    addr: ''
                                }
                            });
                            $("#dg").datagrid('beginEdit', 0); //开启编辑并传入要编辑的行
                            editFlag = 0;
                        }
                    }
                }, '-', {
                    //'-'就是在两个按钮的中间加一个竖线分割,看着舒服
                    text: "删除",
                    iconCls: "icon-remove",
                    handler: function () {
                        //选中要删除的行
                        var rows = $("#dg").datagrid('getSelections');
                        if (rows.length > 0) { //选中几行的话触发事件
                            $.message.confirm("提示", "您确定要删除这些数据吗?", function (res) { //提示是否删除
                                if (res) {
                                    var codes = {};
                                    for (var i = 0; i < rows.length; i++) {
                                        codes.push(rows[i].code);
                                    }
                                    console.info(codes.join(',')); //拼接字符串并传递到后台处理数据,循环删除,成功后刷新datagrid
                                }
                            });
                        }
                    }
                }, '-', {
                    text: "修改",
                    iconCls: "icon-edit",
                    handler: function () {
                        //选中一行进行编辑
                        var rows = $("#dg").datagrid('getSelections');
                        if (rows.length == 1) { //选中一行的话触发事件
                            if (editFlag != undefined) {
                                $("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
                            }
                            if (editFlag == undefined) {
                                var index = $("#dg").datagrid('getRowIndex', rows[0]); //获取选定行的索引
                                $("#dg").datagrid('beginEdit', index); //开启编辑并传入要编辑的行
                                editFlag = index;
                            }
                        }
                    }
                }, '-', {
                    text: "保存",
                    iconCls: "icon-save",
                    handler: function () {
                        $("#dg").datagrid('endEdit', editFlag);
                    }
                }, '-', {
                    text: "撤销",
                    iconCls: "icon-redo",
                    handler: function () {
                        editFlag = undefined;
                        $("#dg").datagrid('rejectChanges');
                    }
                }, '-'],
                onAfterEdit: function (rowIndex, rowData, changes) { //在添加完毕endEdit,保存时触发
                    console.info(rowData); //在火狐浏览器的控制台下可看到传递到后台的数据,这里我们就可以利用这些数据异步到后台添加,添加完成后,刷新datagrid
                    //如何去判断是修改还是添加
                    var insertRows = $("#dg").datagrid("getChanges", "insert"); //获取添加的行
                    var updateRows = $("#dg").datagrid("getChanges", "update"); //获取更新的行
                    //这样我们就能去判断是添加数据还是修改数据了,怎样跟后台交互我就不写了
                    //当然 如果我们更细或者修改成功失败与否我们都应该去告诉一下dategrid
                    $("#dg").datagrid("acceptChanges"); //成功时确认下
                    $("#dg").datagrid("rejectChanges"); //失败时回滚下
                    editFlag = undefined; //重置
                },
                onDblClickCell: function (rowIndex, field, value) { //双击该行修改内容
                    if (editFlag != undefined) {
                        $("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
                    }
                    if (editFlag == undefined) {
                        $("#dg").datagrid('beginEdit', rowIndex); //开启编辑并传入要编辑的行
                        editFlag = rowIndex;
                    }
                },
                onRowContextMenu: function (e, rowIndex, rowData) { //右键时触发事件
                    //三个参数:e里面的内容很多,真心不明白,rowIndex就是当前点击时所在行的索引,rowData当前行的数据
                    e.preventDefault(); //阻止浏览器捕获右键事件
                    $(this).datagrid("clearSelections"); //取消所有选中项
                    $(this).datagrid("selectRow", rowIndex); //根据索引选中该行
                    $('#menu').menu('show', {
                        //显示右键菜单
                        left: e.pageX,//在鼠标点击处显示菜单
                        top: e.pageY
                    });
                }
            });
        });