Javascript如果语句内部while循环函数中断页面

时间:2014-08-24 03:01:08

标签: javascript

我非常非常非常新手,但是当我在我的函数中添加一个简单的if语句时,我似乎打破了我的页面/函数。

完美无缺:

$(function() {
  var i = 0;
  while (i <= 71) {
  i++;
  var linky = "modal" + i;
    $( "#dialog-form" + i ).dialog({
      autoOpen: false,
      height: 400,
      width: 475,
      linky: true,
      buttons: {
        Cancel: function() {
          $( this ).dialog( "close" );
        linky: false;
        }
      },
      close: function() {
        linky: false;
      }
    });
}

打破页面:

$(function() {
  var i = 0;
  while (i <= 71) {
  i++;
  var linky = "modal" + i;
    $( "#dialog-form" + i ).dialog({
      autoOpen: false,
     if( i <= 8 ) {
      height: 300,
      width: 350,
     } else {
      height: 400,
      width: 475,
     }
      linky: true,
      buttons: {
        Cancel: function() {
          $( this ).dialog( "close" );
        linky: false;
        }
      },
      close: function() {
        linky: false;
      }
    });
}

如果id低于9,只是尝试使高度和宽度更小但是我似乎无法在不破坏功能的情况下这样做。

1 个答案:

答案 0 :(得分:2)

您不只是在函数中放置if,而是在{j}对象的中间放置if

这是一个有效的javascript对象:

{
    key1: 1,
    key2: 2,
    key2: 3
}

但是你无法在这个对象的中间添加控制流语句(如ifforwhileswitch),如下所示:

{
    key1: 1,
    if (true) {     // ERROR
        key2: 2,
    }
    key2: 3
}

你可以通过

实现你想要的
  1. 首先创建没有heightwidth的选项对象。
  2. 然后执行if并为heightwidth添加正确的值。
  3. 然后致电$( "#dialog-form" + i ).dialog(options)
  4. 像这样:

    //STEP 1
    var dialogOptions = {
        autoOpen: false,
        linky: true,
        buttons: {
            Cancel: function () {
                $(this).dialog("close");
                linky: false;
            }
        },
        close: function () {
            linky: false;
        }
    };
    //STEP 2
    if (i <= 8) {
        dialogOptions.height = 300;
        dialogOptions.width = 350;
    } else {
        dialogOptions.height = 400;
        dialogOptions.width = 475;
    }
    //STEP 3
    $("#dialog-form" + i).dialog(dialogOptions);