2014-04-01 47 views
0

现在我有多个对话框,并且已经写了以下内容,以便右键打开正确的对话框。重复功能不起作用

$(function() { 
var i = 0; 
if (i < 50) { 
    i++; 
     $(".dialog" + i).dialog({ 
      autoOpen: false, 
      width: 900, 
      show: { 
      effect: "fade", 
      duration: 500 
     }, 
     hide: { 
      effect: "fade", 
      duration: 500 
     } 
     }); 
     $(".opener" + i).click(function() { 
      $(".dialog" + i).dialog("open"); 
     }); 
    } 
}); 

但是,当我点击按钮时没有任何反应。 我在这里错过了什么?

+1

要你改变'if'到'while'? –

回答

0

写此只是为了演示正确的技术的更简单的解决方案。
HTML:

<ul> 
    <li class="open" data-modalID="1">open 1</li> 
    <li class="open" data-modalID="2">open 2</li> 
</ul> 

<ul> 
    <li class="modal modal_1">Hi, I'm modal 1</li> 
    <li class="modal modal_2">Hi, I'm modal 2</li> 
</ul> 

CSS:

.modal { display: none; } 

的jQuery:

(function() { 
    $('.open').on('click', function() { 
     var modalID = $(this).attr('data-modalID'); 

     $('.modal_' + modalID).show(); 
    }); 
})(); 

http://jsfiddle.net/YAkpq/

+0

这太棒了!我将如何去创建'关闭'按钮? – user2585051

+0

你可以使用相同的代码,只要将按钮类更改为«close»而不是«open»,并在JS更改«.show()»到«.hide()»,如果我明白你的意思:) – javakorr

+0

真棒,是否有任何特殊的方式,我需要组织这两个代码块(开放和关闭),它的开放只是花花公子,但关闭按钮似乎并没有做任何事情 – user2585051

0

使用,而(){},而不是如果(){}

$(function() { 
    var i = 0; 
    while (i < 50) { 
     i++; 
      $(".dialog" + i).dialog({ 
       autoOpen: false, 
       width: 900, 
       show: { 
       effect: "fade", 
       duration: 500 
      }, 
      hide: { 
       effect: "fade", 
       duration: 500 
      } 
      }); 
      $(".opener" + i).click(function() { 
       $(".dialog" + i).dialog("open"); 
      }); 
     } 
}); 
+0

嗯现在两个对话框都默认隐藏(真棒),但点击按钮现在不做任何事情。 – user2585051