Показать сообщение отдельно
  #2 (permalink)  
Старый 27.08.2011, 12:01
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Oтформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

немного странный код...

дело в том, что
$('.p1').click(function () {

необходимо писать, когда страничка уже загрузится. если скрипт находится в head, то необходимо писать так
$(function(){
 $('.p1').click(function () {
...........
})

это сокращение от $(document).ready

т.к. в моменту назначения обработчиков страница уже загружена,то можно написать так.
$(function() {
    $('.p1').click(function() {
        $.ajax({
            url: "htmls/p1.html",
            // ссылка на подключаемый документ
            cache: false,
            success: function(html) {
                $("#test").html(html); // задаем идентификатор, #id, который должен быть присвоен нужному div блоку
            }
        });
        return false;
    });
});


если же код вставляется внизу страницы (где-то у конца тега body), то код можно еще сократить до такого.

$('.p1').click(function() {
    $.ajax({
        url: "htmls/p1.html",
        // ссылка на подключаемый документ
        cache: false,
        success: function(html) {
            $("#test").html(html); // задаем идентификатор, #id, который должен быть присвоен нужному div блоку
        }
    });
    return false;
});


так как ссылок у вас много (150), то назначать обработчик каждой - насилие.

легче назначить обработчик всему списку (ul), который будет ловить всплывающие от ссылок события клика.

сделать это можно так

$('ul').click(function(e) {
    if (e.bubbles) {
        if (e.target.tagName.toLowerCase() === "a") {
            $.ajax({
                url: "htmls/p1.html",
                cache: false,
                success: function(html) {
                    $("#test").html(html);
                }
            });
            e.preventDefault();
        }
    }
});


если код (скрипт) подключается в head (сверху страницы), то надо обернуть его в обработчик загрузки страницы. в итоге код будет такой :

$(function() {
    $('ul').click(function(e) {
        if (e.bubbles) {
            if (e.target.tagName.toLowerCase() === "a") {
                $.ajax({
                    url: "htmls/p1.html",
                    cache: false,
                    success: function(html) {
                        $("#test").html(html);
                    }
                });
                e.preventDefault();
            }
        }
    });
});



Сообщение от MaximusGrek Посмотреть сообщение
Возможно ли что бы оглядываясь на "class", или по "onmouseclic" - вызывался файл с тем же именем что и "class", или "onmouseclic".
неясно. понятней опишите

Последний раз редактировалось melky, 27.08.2011 в 12:17.
Ответить с цитированием