2010-06-12 7 views
0

мой код jquery не работает?

UCCN1003

Редактировать

<script type="text/javascript"> 
    $(function(){ 
     $('a.edit').click(function(event){ 

      var change = $(this).parent('div').find('p'); 
      var changeText = change.text(); 
      var wrapper = $(this).parent('div'); 
      var clone = change.clone(true); 

      var changeBox = $(this).parent('div').find('.editBox'); 
      var changeBoxText = changeBox.val(); 
      if($(this).text() == 'Edit'){ 
       wrapper.prepend("<input class='editBox' type='text' value='"+ changeText + "'/>"); 
       wrapper.append("<a href='#' class='save' style='margin-left:10px' >Save</a>"); 
       change.remove(); 
       $(this).text("cancel"); 
      }else if($(this).text()=='cancel'){ 
       wrapper.prepend("<p>" + changeBoxText +"</p>"); 
       $('.editBox').remove(); 
       $('.save').remove(); 
       $(this).text('Edit'); 
      } 

     }); 


     $('.save').click(function(event){ 
      var editBox = $(this).parent('div').find('.editBox'); 
      var editBoxText = editBox.text(); 

      var wrapper = $(this).parent('div'); 
      wrapper.prepand("<p>" + editBoxText + "</p>"); 
      editBox.remove(); 
      $(this).remove(); 
     }); 
    }); 
</script> 

Моя часть, которая работает работа

$('.save').click(function(event){ 
     var editBox = $(this).parent('div').find('.editBox'); 
     var editBoxText = editBox.text(); 

     var wrapper = $(this).parent('div'); 
     wrapper.prepand("<p>" + editBoxText + "</p>"); 
     editBox.remove(); 
     $(this).remove(); 
    }); 

где обертка обыкновение prepand на р тег и EditBox и .save обыкновение быть удалить , Я пытаюсь добавить предупреждение («работа») в этом, и он вообще не будет предупреждать. кто-нибудь знает почему?

ответ

0

Именно этот бит: .prepand(), должно быть: .prepend() :)

В настоящее время было бы бросить .prepand() не ошибка функции, что-то вдоль этих линий, для более короткой полной версии вы можете использовать .prependTo(), а также:

$('.save').live('click', function() { 
    var editBox = $(this).parent('div').find('.editBox').remove(); 
    $("<p />", { text: editBox.val() }).prependTo($(this).parent('div')); 
    $(this).remove(); 
}); 

на второй взгляд, я вижу вы добавляете эти динамически, в этом случае вы должны использовать .live(), как я выше, .click() с селектором не найти эти элементы, созданные позже, так что он никогда не запустится :)

+0

спасибо за ответ, но после изменения на .prepend() он все еще не работает :( – kingdom

+1

@kingdom - Можете ли вы разместить разметку HTML, с которой имеете дело? –

+0

@kingdom - я пропустил еще одну важную деталь, проверьте обновленный ответ :) –

Смежные вопросы