本帖最后由 aa466564931 于 2012-09-13 18:14:20 编辑

解决方案 »

  1.   

    加多个target参数
    比如你之前需要附加rel="#yesno"
    那么你不想加这个在元素上,就指定target参数即可
    $('#id').overlay({target:'#yesno'})
      

  2.   

    是这样的 还有一个情况 比如close这个问题吧,需要设置<div class="close"></div>这样可以实现,如果我使用$("id").overlay().close(),就不能实现,这里是没有rel参数的,那么怎么解决呢?
      

  3.   

    不是很确定完全理解你的意思了 你的意思是通过overlay({target:'#yesno'})这种方式去加上标签到指定的HTML元素吗? 目前我不是很想继续使用这种自定义属性或者是指定的class名称来做了,只是想通过直接调用load(),close()这种API直接调用。还不知道怎么解决
      

  4.   

    你调用close的那个选择器没有初始化过overlay事件吧。。所以为空
      

  5.   

    问题已解决 谢谢 需要先初始化,多谢showdo。
    附下我的解决方案,让有类似问题的人看看:
    Load事件:
     $("#trggierID").click(function () {
                $("#divID").overlay().load();
            });        $("#divID").overlay({
                mask: {                // you might also consider a "transparent" color for the mask
                    color: '#fff',                // load mask a little faster
                    loadSpeed: 200,                // very transparent
                    opacity: 0.5
                },
                closeOnClick: false
            });
    Close()事件
        function test1() {
            $('#close').click(function () {
                $('#yesno').overlay().close();
            });
        }
    如果你需要通过从其他的view中加入具有load和close功能的按钮,请注意要在加入那段HTML中执行初始化,否则可能会造成延迟,例如这是一段需要注入到主页面的partitial view,你需要添加在ready事件中,如果只是在主view中写的话,关闭事件可能要点击几次才会执行:
    <script type="text/javascript">
        $(document).ready(function () {
            $('#close').click(function () {
                $('#yesno').overlay().close();
            });    });
    </script>
    <p> Name: 
    @Html.TextBoxFor(model => model.ModelName)
    </p>
    <p> Active:
    @Html.CheckBoxFor(model => model.ModelActive)
    </p>
    <p> Group:
    @Html.DropDownListFor(model => model.ModelGroupID, Model.groupList)
    </p>
    <button type="submit"> Submit </button>
    <button onclick="test1();" id="close">close2</button>