附加JqueryUI开启者

时间:2014-02-04 16:29:05

标签: javascript jquery jquery-ui append

我有这个jqueriUI对话框:

    <script>
$(function() {
    $( "#dialog" ).dialog({
      autoOpen: false,
      show: {
        effect: "blind",
        duration: 1000
      },
      hide: {
        effect: "explode",
        duration: 1000
      }
    });

    $( "#opener_0" ).click(function() {
      $( "#dialog" ).dialog( "open" );
    });
  });
  </script>

这就是我绘制按钮的方式(更感谢一个对话框):

for (r=0;r<array[i];r++){
            $('#list').append('<button id="opener_' + r + '">Open</button>')
}

当我检查按钮时,我看到id是“opener_0”但是当我点击它时它不起作用。 任何的想法? 谢谢!

2 个答案:

答案 0 :(得分:0)

javascript的顺序非常重要。如果for循环在click事件绑定之后,则没有要绑定的opener_0的id,所以什么也没发生。您需要使用附加按钮的for循环,才能绑定click事件。

答案 1 :(得分:0)

试试这个

$(document).on('click', "#opener_0", (function() {
     $( "#dialog" ).dialog( "open" );
});

更新

你的循环似乎很奇怪,所以试试这个。

var array = [1,2,3,4];
for (var r = 0; r < array.length; r++) {
    $('#list').append('<button id="opener_' + r + '">Open</button>')
}

JSFIDDLE