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

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

20.03.2011, 21:31. Показов 6245. Ответов 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 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru