Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有定义随机性_Javascript_Jquery_Modal Dialog - Fatal编程技术网

Javascript 没有定义随机性

Javascript 没有定义随机性,javascript,jquery,modal-dialog,Javascript,Jquery,Modal Dialog,我有一个使用Math.random生成随机ID的模式 function new_modal(head, content, button){ var random = Math.floor(1000 + Math.random() * 9000); var modal_html = '<div id="myModal_'+ random +'">' + '<div id="outer">' + '<div id="in

我有一个使用Math.random生成随机ID的模式

    function new_modal(head, content, button){

    var random = Math.floor(1000 + Math.random() * 9000);

    var modal_html = '<div id="myModal_'+ random +'">' +
     '<div id="outer">' +
      '<div id="inner">' +
       '<div id="top">'+head+'</div>' +
        '<span class="bOk"><img class="btnClose" src="#"></span>' +
       '<div class="modalCnt">'+content+'</div>' +
       button +        
      '</div> <!-- Inner -->' +
     '</div> <!-- Outer -->' +
    '</div>';

    $('body').append(modal_html);
  // Close the Modal
    $('#myModal_'+ random +' span').on('click', closeFunction);
    return 'myModal_' + random;  

}

它被称为变量范围。:) 如果在一个函数中声明变量(使用var关键字),则在另一个函数中将无法访问该变量。 如果要在两个函数中使用相同的随机数,可以全局声明它(在函数之前)或通过参数传递它

您可以这样使用

 var random="";
 function new_modal(head, content, button){

     random = Math.floor(1000 + Math.random() * 9000);

    var modal_html = '<div id="myModal_'+ random +'">' +
     '<div id="outer">' +
      '<div id="inner">' +
       '<div id="top">'+head+'</div>' +
        '<span class="bOk"><img class="btnClose" src="#"></span>' +
       '<div class="modalCnt">'+content+'</div>' +
       button +        
      '</div> <!-- Inner -->' +
     '</div> <!-- Outer -->' +
    '</div>';

    $('body').append(modal_html);
  // Close the Modal
    $('#myModal_'+ random +' span').on('click', closeFunction);
    return 'myModal_' + random;  

}

function closeFunction() {
    var check = $(this);
        if(check.hasClass("bOk") || check.hasClass("btnText") === true) {
            alert("It's true");
            $(this).closest('#myModal_'+ random).hide();
        } 
        else {
            alert("It's false, do something else");
            return false
            }
}
var random=”“;
功能新模式(标题、内容、按钮){
随机=数学地板(1000+数学随机()*9000);
var modal_html=''+
'' +
'' +
''头+''号+
'' +
''+内容+''+
按钮+
' ' +
' ' +
'';
$('body').append(modal_html);
//关闭模式
$('#myModal'+random+'span')。on('click',closeFunction);
返回'myModal_u2;'+随机;
}
函数closeFunction(){
var check=$(此);
if(check.hasClass(“bOk”)| check.hasClass(“btnText”)==true){
警惕(“这是真的”);
$(this).closest('#myModal'+random).hide();
} 
否则{
警惕(“这是错误的,做点别的”);
返回错误
}
}
正如所指出的,这是一个范围问题,
随机
仅存在于
新模式
函数内,因此无法在此函数外访问。您可以将函数直接嵌入
。在
调用时,如下所示:

功能新模式(标题、内容、按钮){
var random=数学地板(1000+数学随机()*9000);
var modal_html=''+
'' +
'' +
''头+''号+
'' +
''+内容+''+
钮扣+
' ' +
' ' +
'';
$('body').append(modal_html);
//关闭模式
$('#myModal'+random+'span')。在('click',function()上{
var check=$(此);
if(check.hasClass(“bOk”)| check.hasClass(“btnText”)==true){
警惕(“这是真的”);
$(this).closest('#myModal'+random).hide();
}否则{
警惕(“这是错误的,做点别的”);
返回错误
}
});
返回'myModal_u2;'+随机;

}
random是新模态函数的局部变量。你如何想象它将从该功能外部访问?你使用ID是可怕的。。如果您使用类,您甚至不需要
random
,。。只需添加一个类,比如说“modal”,然后您就可以执行->
$(this).closest('.modal”).hide()
我确实需要random,因为我需要能够将模态放在另一个模态上。我当然可以使用class+random而不是id+random。这就是我所拥有的,它工作得很好。但不幸的是,我需要外部的close函数。太好了,我必须更改$(this)。最近('#myModal_'+random)。隐藏();以检查。最近('#myModal_'+random).hide();谢谢。
 var random="";
 function new_modal(head, content, button){

     random = Math.floor(1000 + Math.random() * 9000);

    var modal_html = '<div id="myModal_'+ random +'">' +
     '<div id="outer">' +
      '<div id="inner">' +
       '<div id="top">'+head+'</div>' +
        '<span class="bOk"><img class="btnClose" src="#"></span>' +
       '<div class="modalCnt">'+content+'</div>' +
       button +        
      '</div> <!-- Inner -->' +
     '</div> <!-- Outer -->' +
    '</div>';

    $('body').append(modal_html);
  // Close the Modal
    $('#myModal_'+ random +' span').on('click', closeFunction);
    return 'myModal_' + random;  

}

function closeFunction() {
    var check = $(this);
        if(check.hasClass("bOk") || check.hasClass("btnText") === true) {
            alert("It's true");
            $(this).closest('#myModal_'+ random).hide();
        } 
        else {
            alert("It's false, do something else");
            return false
            }
}