2014-08-28 155 views
0

我使用的模式从引导如何从引导模式

<div aria-hidden="hide" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade" style="display: none;"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 id="myModalLabel" class="modal-title"></h4> 
      </div> 
      <div id="myModalBody" class="modal-body modalScroll"></div> 
      <div class="modal-footer"> 
       <button data-dismiss="modal" class="btn btn-default" type="button">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

这是我的主要模式对话框赶上事件,我发送一些信息,并显示模式,当我需要的时刻来通知用户。但我的想法是使用这种模式来显示图像,当用户选择一个我会保存为头像。因此,我创建功能象下面这样:

<script> 
    $('#avatar').click(function() { 
     showMessage(); 
    }); 

    $('#eee').on('click', function() { 
     alert('333'); 
    }); 

    function showMessage(){ 
     var txto = '<div id="eee">test me test</div>'; 
     $('#myModalLabel').append('Coose Your avatar'); 
     $('#myModalBody').append(txto); 
     $('#myModal').modal('show'); 
    } 
</script> 

现在,当我去页面上,点击DIV ID =头像我会看到模式窗口,但是当我点击:考我,我都没有结果。那么有没有办法做到这一点?

+0

这个问题的答案的问题是[事件委托( http://stackoverflow.com/questions/1687296/what-is-dom-event-delegation) – 2014-08-28 22:26:07

回答

2

尝试添加:

$('#eee').on('click', function() { 
    alert('333'); 
}); 

内showMessage()...您的问题是,你必须重新绑定事件,如果他们之后添加到动态添加元素(文件)。就绪或在这种情况下,页面渲染...

每当我这样做,我只是做一个大的函数称为rebindEvents(),我可以调用让页面知道我的新项目...只是一个警告,它不是伟大的表现,如果你结束了你必须处理的很多jquery元素,淘汰赛是一个更好的库,用于处理动态html,然后这样做。

也,我假设你要呈现化身的列表,所以你可能要交换EEE的一类,而不是ID ...

+0

你说得对:bind(“click”,abc); function abc(){ alert('eee'); 'showMessage中的'' }。但我不知道什么是目前的头像列表呃 – user3733929 2014-08-28 22:48:41

+0

像我说的,你应该看看http://knockoutjs.com/ ...这是一个更好的方式来处理动态html和所有的事件传播/冒泡的东西都是为你处理的......如果你使用重新绑定事件的方法,你将根据你正在做的任何事情的复杂性,结束一些严重的记忆问题。 – zach 2014-08-28 23:31:30