定义变量时出现“意外的var”错误

时间:2016-03-03 10:16:52

标签: javascript jquery

我创建了一个非常简单的弹出/模态框。我想点击.openModal按钮后显示它,然后点击.closeModal或屏幕上的任意位置关闭它。问题是我无法定义变量,如果模态打开(true)或关闭(false)则显示。

有什么问题?

<div class="modal"></div>
   <div class="modalContent">
   <span class="closeModal">x</span>
   </div>

    <script>
        var openModal = false;

        $(".openModal").click(function(){
            $(".modal").show();
            $(".modalContent").show();
             openModal = true;
        })

         $(".closeModal").on('click', function(){
            $(".modal").hide();
            $(".modalContent").hide();
             openModal = false;
        })

        $("body").on('click', function(){
        if(openModal){
            $(".modal").hide();
            $(".modalContent").hide();
        }
        })

    </script>

3 个答案:

答案 0 :(得分:2)

我终于解决了这个问题:

<div class="modal"></div>
<div class="modalContent">
<span class="closeModal">x</span>
</div>

            var openModal = false;

            $("body").on('click','.modal', function(){
                    if(openModal === true){
                        $(".modal").hide();
                        $(".modalContent").hide();
                    }
            });

            $("body").on('click', '.openModal', function(){
                $(".modal").show();
                $(".modalContent").show();
                 openModal = true;       
            });

             $('body').on('click',".closeModal", function(){
                $(".modal").hide();
                $(".modalContent").hide();
                 openModal = false;
            });

.modal是一个灰色背景,在弹出窗口打开时显示,全屏显示,因此点击它会像点击身体一样工作。似乎无法点击身体元素,就像它背后的东西一样。我不确定

答案 1 :(得分:1)

为变量检查创建一个函数:

function checkOpen() {
    if (!openModal) {
        $(".modal").hide();
        $(".modalContent").hide();
    }
}

然后在修改模态时调用它:

$(".openModal").click(function(){
    $(".modal").show();
    $(".modalContent").show();
    openModal = true;
    checkOpen();
})

答案 2 :(得分:1)

您可以在yes i have done it. The convert to double thing works thankyou all Appriciated.[enter link description here][1] cmd.Parameters.AddWithValue("@txt_rdvalue",txt_rdvalue.Text); cmd.Parameters.AddWithValue("@txt_orderid",Convert.ToDouble(txt_orderid.Text)); cmd.Parameters.AddWithValue("@cb_oname", cb_oname.SelectedText); cmd.Parameters.AddWithValue("@cb_ocat", cb_ocat.SelectedText); cmd.Parameters.AddWithValue("@cb_oqty", Convert.ToDouble(cb_oqty.SelectedValue)); cmd.Parameters.AddWithValue("@txt_oprice",Convert.ToDouble((txt_oprice.Text))); cmd.Parameters.AddWithValue("@txt_disc",Convert.ToDouble(txt_disc.Text)); cmd.Parameters.Add(new SqlParameter("@Date", dateTimePicker1.Value.Date)); [1]: http://www.stackoverflow.com/alygorejaanswers 中使用data-*属性:

.modal

然后在JS中更新它:

<div class="modal" data-open='false'></div>

希望这有帮助。