2011-10-09 51 views
1

我有一些问题与使用jQuery的jQuery - Javascript语言,回应

HTML

<div class="dnone team_data" id="team_<?php echo $allnum; ?>" style="padding: 10px; margin: 2px 0 2px 0; border: 1px solid <?php echo $site_color; ?>;"> 
<div class="ajax-json-loading"></div> 
<div class="ajax-json-response"></div> 
<table cellspacing="5"> 
    <tr> 
     <td valign="top" style="width: 100px;"> 
      <b>Csapat vezető:</b> 
     </td> 
     <td class="team-leader-area"> 
      <input type="hidden" class="team-leader-hidden-id" value="<?php echo $value['leader']; ?>" /> 
      <div class="team-leader-id"><a href="http://lanseries.hu/index.php?oldal=profile&p_id=<?php echo $value['leader']; ?>" target="_blank"><?php echo $value['leader']; ?></a></div> 
      <div class="team-leader-modify"><a href="javascript:void(0);">Módosít</a></div> 
     </td> 
    </tr> 
    <tr> 
     <td valign="top" style="width: 100px;"> 
      <b>Befizető címe:</b> 
     </td> 
     <td> 
      <?php echo $value['p_address']; ?> 
     </td> 
    </tr> 
</table></div> 

而jQuery的

$(document).ready(function() { 
$('.team-leader-modify a').click(function(){ 
    var action = $(this).text(); 
    if (action == 'Módosít') { //Option 1 
     var value = $(this).parents('.team_data').find('.team-leader-hidden-id').val(); 
     $(this).parents('.team_data').find('.team-leader-id').html('<input type="text" name="leader-id" class="leader-id" value="'+value+'" /><input type="button" name="team-leader-mod-button" class="team-leader-mod-button" value="módosít" />'); 
     $(this).parents('.team_data').find('.team-leader-modify').html('<a href="javascript:void(0)">Mégse</a>'); 
    } 
    if (action == 'Mégse') { //Option 2 
     var value = $(this).parents('.team_data').find('.team-leader-hidden-id').val(); 
     $(this).parents('.team_data').find('.team-leader-id').html('<a href="http://lanseries.hu/index.php?oldal=profile&p_id='+value+'" target="_blank">'+value+'</a>'); 
     $(this).parents('.team_data').find('.team-leader-modify').html('<a href="javascript:void(0)">Módosít</a>'); 
    } 
}); }); 

我点击a后DOM后加载它显示了option 1正确,但在单击option 1中的a后,它不显示option 2

你能帮我吗?

感谢:马塞尔

回答

2

如果我理解正确的话,你的问题是,你要插入一个新元素到DOM,所以click事件处理程序将不会被连接到它。您可以使用jQuery的livedelegate方法将事件处理程序附加到现有元素,并且在未来的增加:

$('.team-leader-modify a').live("click", function(){ 
    //Your function 
}); 

或者与delegate

$('.team-leader-modify').delegate("a", "click", function(){ 
    //Your function 
}); 

我会建议使用delegate,这提供更好的性能,因为jQuery不必监视整个DOM中的新元素,仅仅是选定的元素。

+0

非常感谢!这就是我正在寻找:) – Skylineman

+0

没问题,很高兴我可以帮助:) –

+0

再次您好。 我又遇到了一个问题。你能帮我解答吗? http://pastebay.com/140796谢谢! – Skylineman