на странице есть некий код
<script type="text/javascript">
$(document).ready(function() {
$("ul li").click(function(even) {
........
$.ajax({
type: "POST",
url: "ajax.php",
data: ({....}),
success: function(msg){
$(".price_block").html(msg);
}
});
});
$(".pug").click(function() {
alert();
});
});
</script>
при выполнении $("ul li").click(function(even) кода все нормально, все подгружается и т.п через AJAX, потом в новом подгруженном тексте есть ссылка с классом pug, при нажатии на ссылку должен обработать вот этот блок
$(".pug").click(function() {
alert();
});
Но он не срабатывает, почему так?)
Все именования правильные, сто раз перепроверил.
Спустя 4 минуты, 40 секунд (9.05.2011 - 17:34) alex12060 написал(а):
А он случаем не дублируется несколько раз?
Спустя 51 секунда (9.05.2011 - 17:35) sharki написал(а):
Игорь_Vasinsky
Не понял
Находится внутри блока $(document).ready(function() {
Не понял
$(".pug").click(function() {
alert();
});
Находится внутри блока $(document).ready(function() {
Спустя 1 минута, 34 секунды (9.05.2011 - 17:37) sharki написал(а):
alex12060
Что именно дублируется? новый подгружаемый контент не имеет какого либо кода, только табличка и всё.
Что именно дублируется? новый подгружаемый контент не имеет какого либо кода, только табличка и всё.
Спустя 2 минуты, 22 секунды (9.05.2011 - 17:39) alex12060 написал(а):
sharki
А откуда известно? Может так это выглядит:
От этого и будет ругаться. А так, протести в мазилке, открой консоль ошибок, там все должно быть написано если беда.
А откуда известно? Может так это выглядит:
<div id="layer" class="pug">
<div class="pug">
...
</div>
</div>
От этого и будет ругаться. А так, протести в мазилке, открой консоль ошибок, там все должно быть написано если беда.
Спустя 1 минута, 11 секунд (9.05.2011 - 17:40) sharki написал(а):
alex12060
Какая разница, будет ругаться если был бы не class а id
щас гляну что-там
Какая разница, будет ругаться если был бы не class а id
щас гляну что-там
Спустя 1 минута, 53 секунды (9.05.2011 - 17:42) alex12060 написал(а):
sharki
Ты меня не понял. Я специально сделал вложенность с одним и тем-же классом, чтобы показать, что браузер прсото может не понять, на какой ему реагировать и просто выдаст ошибку. Но это маловероятно.
Ты меня не понял. Я специально сделал вложенность с одним и тем-же классом, чтобы показать, что браузер прсото может не понять, на какой ему реагировать и просто выдаст ошибку. Но это маловероятно.
Спустя 1 минута, 25 секунд (9.05.2011 - 17:44) sharki написал(а):
alex12060
В любом случае повторений нету вот есть только одна ссылка
Ошибок нету
В любом случае повторений нету вот есть только одна ссылка
<a class="pug" href="#cat_id=20&num=2">2</a>
Ошибок нету
Спустя 2 минуты, 37 секунд (9.05.2011 - 17:46) Игорь_Vasinsky написал(а):
sharki
там я обознался...
у меня вообще строка $(document).ready(function() { - вызывает ошибку - предпологаетс наличие объекта
я сначала думал - мож опечатка - нет. вынес в отдельный файл - такая же фигня
там я обознался...
у меня вообще строка $(document).ready(function() { - вызывает ошибку - предпологаетс наличие объекта


Спустя 1 минута, 43 секунды (9.05.2011 - 17:48) sharki написал(а):
Игорь_Vasinsky
Это же jquery.
Полная конструкция
Это же jquery.
Полная конструкция
$(document).ready(function() {...});
Спустя 2 минуты, 26 секунд (9.05.2011 - 17:50) Игорь_Vasinsky написал(а):
в первую очередь это JS, я в отдельный js подключаю и ошибка
Спустя 7 секунд (9.05.2011 - 17:50) sharki написал(а):
Щас попробовал вынести отдельный кусочек внутрь того подгружаемого контента, и он стал выполняться О_О
В итоге получилось что подгружаемый контент имеет JS код
<script type="text/javascript">
$(document).ready(function() {
$(".pug").click(function() {
alert();
});
});
</script>
В итоге получилось что подгружаемый контент имеет JS код
Спустя 47 секунд (9.05.2011 - 17:51) sharki написал(а):
Игорь_Vasinsky
Ты чего то путаешь
Ты чего то путаешь
Спустя 4 минуты, 27 секунд (9.05.2011 - 17:56) Игорь_Vasinsky написал(а):
sharki
http://ru.wikipedia.org/wiki/Jquery
я не путаю. этот фрейморк был придуман чтобы упростить работу с кодом JS и разработчики с со своей задачей справились
http://ru.wikipedia.org/wiki/Jquery
я не путаю. этот фрейморк был придуман чтобы упростить работу с кодом JS и разработчики с со своей задачей справились
Спустя 5 минут, 24 секунды (9.05.2011 - 18:01) sharki написал(а):
Игорь_Vasinsky
:blink: всё это я знаю, я тебя не могу понять. Откуда у тебя та ошибка то?)))
Запусти порпобуй
:blink: всё это я знаю, я тебя не могу понять. Откуда у тебя та ошибка то?)))
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("опачки");
});
</script>
Запусти порпобуй
Спустя 40 секунд (9.05.2011 - 18:02) sharki написал(а):
я так понял никто не знает почему не работает код? =)
Спустя 1 минута, 6 секунд (9.05.2011 - 18:03) Игорь_Vasinsky написал(а):





jquery не подключил
Спустя 4 минуты, 6 секунд (9.05.2011 - 18:07) Игорь_Vasinsky написал(а):
всё отлично работает
и в коде и если выносить


Спустя 1 минута, 32 секунды (9.05.2011 - 18:08) Игорь_Vasinsky написал(а):
ну я ока многоточия твои снёс.
Спустя 2 минуты, 22 секунды (9.05.2011 - 18:11) sharki написал(а):
Игорь_Vasinsky
Я же написал когда не работает =)
Еще раз по пунктикам
1) при первом щелчке по списку аяксом подгружается табличка в див блок, там есть ссылка с классом pug
2) в основном скрипте есть обработчик события щелчка по элементу с классом pug
Вот если щелкнуть по данной ссылке основной скрипт не исполнится!
Я же написал когда не работает =)
Еще раз по пунктикам
1) при первом щелчке по списку аяксом подгружается табличка в див блок, там есть ссылка с классом pug
2) в основном скрипте есть обработчик события щелчка по элементу с классом pug
Вот если щелкнуть по данной ссылке основной скрипт не исполнится!
Спустя 3 минуты, 27 секунд (9.05.2011 - 18:14) Игорь_Vasinsky написал(а):
ну тыб выложил бы полный код, а то мне додумовать вообще лень, просто может нужно убедится что фрма загрузилась, а потом уже клик привязовать, такое бывает, в частности на примере с кнопой submit - на ajax - т.е. кнопа уже видна, но document еще не Готов и обработчик не хватался - есть такое.
Спустя 2 минуты, 54 секунды (9.05.2011 - 18:17) sharki написал(а):
Игорь_Vasinsky
Вот написал примерчик, симптом тот же
ajax.php
Вот написал примерчик, симптом тот же
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".pug2").click(function() {
$.ajax({
type: "POST",
url: "ajax.php",
data: ({mod:"read"}),
success: function(msg){
$(".price_block").html(msg);
}
});
});
$(".pug").click(function() {
alert();
});
});
</script>
<a class="pug2" href="#">КликF</a>
<div class="price_block">
</div>
ajax.php
<?php
echo '<a class="pug" href="#">JGFFFFFFFF</a>';
?>
Спустя 22 минуты, 43 секунды (9.05.2011 - 18:40) Игорь_Vasinsky написал(а):
при клике на pug2 в див прилетает pug - Но при просмотре в html - его там нет
Спустя 2 минуты, 54 секунды (9.05.2011 - 18:43) Игорь_Vasinsky написал(а):
может тебе к диву привязать клик, или попробовать не явно класс указать а как дочерний элемент дива.
в первом варианте работает, во втором не проверял
в первом варианте работает, во втором не проверял
Спустя 2 минуты, 49 секунд (9.05.2011 - 18:46) sharki написал(а):
Игорь_Vasinsky
Понятно тогда =) он же действительно не может найти в DOM документе тот самый элемент с классом pug, из-за этого мозгу имеет)))
так что любой контент который загружен через AJAX, не может быть отображен в DOM документе.
Понятно тогда =) он же действительно не может найти в DOM документе тот самый элемент с классом pug, из-за этого мозгу имеет)))
так что любой контент который загружен через AJAX, не может быть отображен в DOM документе.
Спустя 6 минут, 17 секунд (9.05.2011 - 18:52) Игорь_Vasinsky написал(а):
да, но ты его в полне уместно разместил в диве, поэтому управлять (мнимо) можно родительским контейнером

Спустя 22 минуты, 3 секунды (9.05.2011 - 19:14) Invis1ble написал(а):
sharki
Попробуй непосредственно на ссылку навесить onclick. Если я правильно понял твою проблему - то должно помочь, у меня самого недавно подобная проблема была.
Попробуй непосредственно на ссылку навесить onclick. Если я правильно понял твою проблему - то должно помочь, у меня самого недавно подобная проблема была.
Спустя 3 минуты, 11 секунд (9.05.2011 - 19:17) Игорь_Vasinsky написал(а):
Invis1ble
Да Ajax её в DOM то не вставляет при приёме. запусти код, посмотри исходный, после исолнения - визуально она есть, а фактически её там нет
Да Ajax её в DOM то не вставляет при приёме. запусти код, посмотри исходный, после исолнения - визуально она есть, а фактически её там нет

Спустя 2 минуты, 16 секунд (9.05.2011 - 19:19) sharki написал(а):
Invis1ble
Я пробовал, не получается
Я пробовал, не получается
Спустя 11 минут, 33 секунды (9.05.2011 - 19:31) Invis1ble написал(а):
sharki
А я сделал - все работает, проверь сам:
index.php
ajax.php
А я сделал - все работает, проверь сам:
index.php
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
function func() {
alert('OK');
}
$(document).ready(function() {
$(".pug2").click(function() {
$.ajax({
type: "POST",
url: "ajax.php",
data: ({mod:"read"}),
success: function(msg){
$(".price_block").html(msg);
}
});
});
});
</script>
<a class="pug2" href="#">КликF</a>
<div class="price_block">
</div>
ajax.php
<?php
echo '<a class="pug" href="#" onclick="javascript: func()">JGFFFFFFFF</a>';
Спустя 8 минут, 13 секунд (9.05.2011 - 19:39) sharki написал(а):
Invis1ble
хм, так делал, получалось, меня не устроило то, что я не могу вызвать эту функцию внутри $(document).ready(function() { где я могу пользоваться jquery
хм, так делал, получалось, меня не устроило то, что я не могу вызвать эту функцию внутри $(document).ready(function() { где я могу пользоваться jquery
Спустя 3 минуты, 46 секунд (9.05.2011 - 19:43) Invis1ble написал(а):
sharki
А кто тебе мешает там юзать jQuery ?
А кто тебе мешает там юзать jQuery ?
function func() {
alert($(this));
}
Спустя 5 минут, 59 секунд (9.05.2011 - 19:49) sharki написал(а):
точняк 
Спасибо)

Спасибо)
Спустя 2 часа, 50 минут, 53 секунды (9.05.2011 - 22:40) Lex_R написал(а):
sharki
Ошибка в том, что собитие $(".pug").click(function() ... вешается на элемент с классом pug, который уже есть в документе, а у тебя он загружается аяксом, поэтому собитие и не срабатывает. Чтобы событие вешалось и на новые элементы, которые загружаются аяксом, нужно использовать метод live() - $(".pug").live("click", function(){...})
Ошибка в том, что собитие $(".pug").click(function() ... вешается на элемент с классом pug, который уже есть в документе, а у тебя он загружается аяксом, поэтому собитие и не срабатывает. Чтобы событие вешалось и на новые элементы, которые загружаются аяксом, нужно использовать метод live() - $(".pug").live("click", function(){...})
Спустя 9 минут, 22 секунды (9.05.2011 - 22:49) sharki написал(а):
Lex_R
хм, щас гляну что это за зверь такой, спасибо за инфу))
хм, щас гляну что это за зверь такой, спасибо за инфу))
Спустя 55 минут, 13 секунд (9.05.2011 - 23:44) Invis1ble написал(а):
Интересно, нужно будет потом тоже попробовать.
sharki, отпишись, работает ли.
sharki, отпишись, работает ли.