Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386

Подгруздка контекста.

20.03.2011, 21:31. Показов 6181. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подгружаю контекст в див с помощью аякса.
JavaScript
1
2
3
4
5
6
7
8
$(document).ready(function(){
                $.ajax({   
                    type: "POST",   
                    url: "greetings.php",   
                    data: "url=whod",   
                    success: function(html){$("div#whod").html(html);}
                }); 
});
ну вот в подружейнном контексте скрипт не находит объекты хотя этиже объекты вставленные в код вручную работают норм.
к примеру:
JavaScript
1
2
3
4
$("a#viod").click(function(){
                           alert("нажалась");
 
});
вот подгружаемый файл.
HTML5
1
2
3
<a id="viod" href="javascript:void(0);">
Выйти
</a>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2011, 21:31
Ответы с готовыми решениями:

Потеря контекста
Доброго времени суток. Помогите понять следующий пример: взят от сюда https://learn.javascript.ru/bind var user = { ...

Привязка контекста к {}
Можно привязать контекст к объекту? var obj1 = { prop: 1, method: { set: function () { return...

Задание контекста в сallback-функциях
Всем привет! В последние время JS становится всё асинхронее и повсюду используются callback'и. Классная штука, однако проблема в том,...

62
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
20.03.2011, 21:42
Лучший ответ Сообщение было отмечено как решение

Решение

это потому что Jquery на видит объекты, которые были созданы уже после генерации страницы... тут 2 решения:
1 - всунуть код
JavaScript
1
2
3
4
$("a#viod").click(function(){
                                                   alert("нажалась");
 
});
в
JavaScript
1
2
3
4
success: function(html){
$("div#whod").html(html);
//вот сюда
}
или 2 вариант, использовать вместо вот этого метода
JavaScript
1
2
3
4
$("a#viod").click(function(){
                                                   alert("нажалась");
 
});
вот этот
JavaScript
1
2
3
4
$("a#viod").live('click', function(){
                                                   alert("нажалась");
 
});
вот описание метода http://api.jquery.com/live/
3
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
20.03.2011, 23:13  [ТС]
спасибо с меня +
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
20.03.2011, 23:15
пожалуйста)
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
20.03.2011, 23:17  [ТС]
второй способ мне идеально подходит
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
20.03.2011, 23:26
Лучший ответ Сообщение было отмечено как решение

Решение

единственное, старайся по возможность всетаки использовать .click(function(){}) он меньше систему грузит, при единичном использовании разницы нету, но при большом количестве строчек с .live('click', function(){ в скорости разница будет заметна, т.е. вот этот вариант
JavaScript
1
2
3
4
$("a#viod").click(function(){
                                                   alert("нажалась");
 
});
и этот
JavaScript
1
2
3
4
$("a#viod").live('click', function(){
                                                   alert("нажалась");
 
});
по скорости одинаковые
но в следующем случае
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$("a#viod1").click(function(){
                                                   alert("нажалась");
 
});
$("a#viod2").click(function(){
                                                   alert("нажалась");
 
});
$("a#viod3").click(function(){
                                                   alert("нажалась");
 
});
и т.д....
и
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$("a#viod1").live('click', function(){
                                                   alert("нажалась");
 
});
$("a#viod2").live('click', function(){
                                                   alert("нажалась");
 
});
$("a#viod3").live('click', function(){
                                                   alert("нажалась");
 
});
и т.д....
первый вариант будет быстрее
3
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
20.03.2011, 23:44  [ТС]
спасибо ещё один вопросик....
как в этом подгруженном контексте убрать значения input
тобиш
JavaScript
1
document.forms.arr.value = '';
тут не работает
убрать нужно из этой поля
HTML5
1
<input id="arr" type="text" value="arrrrrrrrrrr">
и так тоже неработает
JavaScript
1
$(this).login.value = '';
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
21.03.2011, 00:44
вроде вот так
JavaScript
1
$("input#arr").attr('value', '');
или
JavaScript
1
$("input#arr").val('');
или
JavaScript
1
$("input#arr").removeAttr('value');//удалит атрибут и значение соответственно
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
22.03.2011, 00:40  [ТС]
ещё вопросик
PHP
1
echo '<tr><td><a href="index.php?p=ydal&idir='.$zayva['akcid'].'">Удалить<a></td></tr>'
нужно сделать так чтобы код сверху работал через JS.
но дело в том что этот код генерируется автоматически циклом и данные берутся из БД.
как быть в данном случаи я не знаю
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
22.03.2011, 17:44
сделай через функцию, допустим вот так
я так понял что p=ydal -- это действие удалить
PHP
1
echo '<tr><td><a href="javascript: del("'.$zayva['akcid'].'");">Удалить</a></td></tr>'
и сам JS
JavaScript
1
2
3
4
function del(idir) //функция которая будет удалять что-то с идентификатором "idir"
{
...
};
или можно сделать еще более красиво
PHP
1
echo '<tr><td><a id="del" title="'.$zayva['akcid'].'" href="javascript: void(0);">Удалить</a></td></tr>'
и сам JS
JavaScript
1
2
3
4
$('a#del').click(function (){ //при нажатии на элемент с тегом А и айдишником DEL будет выполнятся код внутри
var dir_name = $(this).attr('title'); //берем идентификатор из атрибута TITLE, this - обозначает что мы берем атрибут из элемента, который запустил этот код, т.е. из элемента с тегом A и айдишником DEL
...
});
Добавлено через 2 минуты
а внутри можешь выполнять что захочешь, аякс запросы и т.п.
2
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
22.03.2011, 22:12  [ТС]
вот о втором варианте я и говорил спасибо....
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
22.03.2011, 23:32
пожалуйста)
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
23.03.2011, 00:16  [ТС]
ещё вопросик.
В этой теме Изменение страници без перезапуска. .
вы мне объяснили как подгрузить...
У меня на одной из страниц есть капча. Она генерируется скриптом....
выводится вот так <img src="cap.php" />.
текст картинки генерируется вот так...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$length = "6";
$randstr = "";
for($i=0; $i<$length; $i++) {
$randnum = mt_rand(0,61);
if ($randnum < 10) {
$randstr .= chr($randnum+48);
} else if ($randnum < 36) {
$randstr .= chr($randnum+55);
} else {
$randstr .= chr($randnum+61);
}
}
$_SESSION['cap'] = $randstr;
?>
а вот и сама картинка генерируется....
<
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
?php
session_start();
$img = imagecreate(120,30);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$red = imagecolorallocate($img,255, 0, 0);
$pink = imagecolorallocate($img, 200, 0, 150);
imagefill($img, 0, 0, $white);
putenv('GDFONTPATH=' . realpath('.'));
imagettftext($img, 16, 0, 15, 24, $black, "1.ttf", $_SESSION['cap']);
header("Content-type:image/png");
imagepng($img);
imagedestroy($img);
?>
Проблема в том что текст генерируется а вот картинка не меняется.....
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
23.03.2011, 00:29
немного не понял, проблема в том что картинка капчи не гинерится или она всетаки генерится, но не отображается? или она и генерится и отображается, но надо сделать что бы эта картинка обнавлялась динамически при нажатии "Обновить рисунок"?)
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
23.03.2011, 14:22  [ТС]
она генерируется и обновляется при обновлении страници

но сайт сделан так что при переходе по меню страници подгружаются в див и картинка капчи как я понял идёт в КЕШ

когда я снова подгружаю страницу с капчой в див текс капчи генерируется но картинка остаётся прежней с прошлого генерируемого кода.
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
23.03.2011, 16:31
HTML5
1
<img src="cap.php" />
эту строчку ты вставляешь как ШТМЛ с ссылкой на ПХП файл?
если так посмотри в этом файле строчку которая возвращает адрес на рисунок и добавь к возвращаемой строчке rand(1,1000000), т.е. если у cap.php возврат ссылки на рисунок такой
PHP
1
echo $img_link;
замени ее на
PHP
1
echo $img_link."?".rand(1,1000000);
получится что у тебя ссылка на рисунок будет постоянно разная и браузер будет думать что подгружаются разные рисунки, хотя на самом деле будет постоянно рисунок с линком допустим /i/capcha.gif
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
23.03.2011, 17:22  [ТС]
дело в том что
HTML5
1
<img src="cap.php" />
cap.php это и есть файл где генерируется картинка...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start();
$img = imagecreate(120,30);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$red = imagecolorallocate($img,255, 0, 0);
$pink = imagecolorallocate($img, 200, 0, 150);
imagefill($img, 0, 0, $white);
putenv('GDFONTPATH=' . realpath('.'));
imagettftext($img, 16, 0, 15, 24, $black, "1.ttf", $_SESSION['cap']);
header("Content-type:image/png");
imagepng($img);
imagedestroy($img);
?>
тут скрипт генерируется текст скрипта берётся из $_SESSION['cap']....
в сессию он суётся вот тут:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$length = "6";
$randstr = "";
for($i=0; $i<$length; $i++) {
$randnum = mt_rand(0,61);
if ($randnum < 10) {
$randstr .= chr($randnum+48);
} else if ($randnum < 36) {
$randstr .= chr($randnum+55);
} else {
$randstr .= chr($randnum+61);
}
}
$_SESSION['cap'] = $randstr;
?>
этот код распаложен на той же страници где и
<img src="cap.php" /> только чуть выше.

Добавлено через 2 минуты
аа всё понятно... нужно сделать вот так...
PHP
1
<img src="cap.php<? echo "?".rand(1,1000000000);>" />
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
23.03.2011, 17:42
если начало работать нормально, значит вставил правильно) я просто не могу тебе с уверенностью сказать именно туда ли ты вставил, потому что я не "держал" этот скрипт в руках и с ним не работал)

Добавлено через 1 минуту
у тебя в ШТМЛ должен быть сгенерированный код вида
HTML5
1
<img src="/i/some_image.gif?1234" />
если в ШТМЛе будет похожая строчка, значит будет работать нормально)
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
23.03.2011, 23:53  [ТС]
я не такой тупой...
догадался куда вставить.. работает как часы...
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
24.03.2011, 02:12
Dzhekson6000, так я сам не знал будет ли оно работать, я предполагал что так должно нормально работать) поэтому и написал, что если работает значит все верно вставил)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2011, 02:12
Помогаю со студенческими работами здесь

Инструменты для просмотра контекста замыкания
Столкнулся с такой проблемой: есть много функций, замкнутых относительно некоторых объектов, например,function add(x) { return...

Подгруздка поста вместо стандартного page break
Возможно ли сделать так что бы статья не загружалась полностью, особенно если она длинная, но при прокрутке, подгружает контент? Это...

Получение контекста!
Здавствуйте участники форума! :) На повестке возник такой вопрос. Обрисую ситуацию-&gt; Есть класс, унаследованный от родителя,...

Lifetime контекста
Как у вас в крупных проектах на ASP.MVC живёт контекст базы данных? То есть пока всё просто и общение с базой вынесено в отдельный слой, то...

Цена контекста в Японии
Если я не ошибаюсь, клики в америке и в европе порой стоят значительно дороже наших, отчественных. В связи с этим возникает вопрос: на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru