从另一个 JavaScript 函数中调用 jQuery(模态弹出窗口)函数

Calling jQuery (modal popup) function from within another JavaScript function

本文关键字:函数 模态 窗口 jQuery 另一个 JavaScript 调用      更新时间:2023-09-26

我正在尝试调用一个facebox模态框(flow player的jQuery Tools)。
我有一个选择菜单,onChange正在调用我的sub_debt脚本。 sub_debt脚本评估选择菜单的值 - 如果value == 1(对于"是"),我想调用标头中定义的面框模式。

目前,下面的代码正在"有点"调用面框模式 - 它正在将选择菜单"移出"它在页面上的位置,就好像它是面框模态弹出窗口本身的唯一部分,并将变暗的背景蒙版应用于页面的其余部分。

(注意:例如,当从锚标记调用时,facebox 模式脚本确实可以正常工作)

    <head>
    <script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
    <!-- Popups : Facebox -->
    <script>
    function popup(choosebox) {
            var $choosebox = $("#" + choosebox);
            if ($choosebox.hasClass("init")) {
                    $choosebox.overlay().load();
            }
            else {
                    $choosebox.addClass("init");
                    $choosebox.overlay({
             // custom top position
             top: 260,
             mask: { color: '#838383',
                     loadSpeed: 200,
                     opacity: 0.5
             },  
             closeOnClick: true,
             load: true
            });
    }
    }
    </script>
    </head>
    <body>

    <script type="text/javascript">
    function subdebt(choosebox){
        var myField = document.getElementById('subordinate_debt');
        if(myField.value == "1") {
            popup(choosebox); // Calls above function from defined in header
        } else {
            alert("Do not fire popup - you entered: " + myField.value);
        }   
    }
    </script>

    <select name="subordinate_debt" id="subordinate_debt" onchange='subdebt("subordinate_debt");'>
        <option value="" selected="selected"></option>
        <option value="0">No</option>
        <option value="1">Yes</option>
    </select>

这是因为您确实将选择的 id 设置为面框的内容。您希望传递另一个div的/元素的id作为面框的内容。

例如:

...
<div id="SHOWME" style="display: none;">
Inside facebox
</div>
<select name="subordinate_debt" id="subordinate_debt" onchange='subdebt("SHOWME");'>
...

以下更改有效。(感谢"Amit Soni" - oDesk.com 承包商)

<script type="text/javascript">
function subdebt(choosebox){
    var myField = document.getElementById('subordinate_debt');
if(myField.value == "1") {
    popup("subordinate_debt_Popup");
} else {
alert("Do not fire popup - you entered: " + myField.value);
}   
}
</script>

并将"subordinate_debt"DIV ID更改为"subordinate_debt_Popup"

<div id="subordinate_debt_Popup" class="facebox">.....</div>