возникли проблемы с добавлением HTML в JQuery - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть ссылка на странице, которая при щелчке открывает окно с толстым ящиком с модальным содержимым Ajax.Странно то, что если я уберу alert('');, следующая строка кода jquery не будет работать.$('#logintest').before('<input type="hidden" value="' +st+ '" name="ReturnTo">');

Если есть alert('');, то скрытый ввод добавляется в модальное окно Thickbox перед вводом с идентификатором «logintest», как и должно быть.удалось выяснить, почему, кто-нибудь?

Вот код на главной странице

<a class="login_links" id="myaccount" href="/myaccount.asp">My Account</a>

<script type="text/javascript" language="javascript">
$(function(){
$(".login_links").click(function(){   
var t = this.title || null;
var s = $(this).attr("href");
var g = this.rel || false;
var l = '/v/AjaxLogin.asp?height=100&width=300&modal=true'
tb_show(t,l,g);
var st = s.substr(s.lastIndexOf("/") + 1);
alert('');
$('#logintest').before('<input type="hidden" value="' +st+ '" name="ReturnTo">');
return false;
});
});
</script>

А вот код на странице ajax

<div style="text-align:center ">
<form action="/login.asp" method="post" name="loginform">
<table border="0" cellpadding="3" cellspacing="3" style="margin:0 auto;">
<tr>
    <td>Username:</td>
        <td><input type="text" maxlength="75" size="30" value="" name="email"></td>
</tr>
<tr>
        <td>Password:</td>
        <td align="left"><input id="logintest" type="password" maxlength="20" size="20" name="password"></td>
</tr>
<tr align="right">
        <td colspan="2"><input type="submit" value="Login">&nbsp;<input type="submit" id="cancel" value="Cancel" onclick="tb_remove();return false;"></td>
</tr>

1 Ответ

1 голос
/ 25 ноября 2010

Ajax-загрузка выполняется асинхронно. Причина, по которой он не работает без предупреждения, заключается в том, что HTML из запроса ajax еще не был добавлен в dom. Вам нужно переместить этот код в обратный вызов успеха. Я не уверен, что туберкулез обеспечивает это или нет.

...