Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Клик на ссылке


Автор: s1lver 11.8.2014, 12:07
Доброго времени суток!

Подскажите как можно сделать нажатие на ссылку, чтобы передавались уникальные данные для каждой из ссылки?

Допустим, есть несколько ссылок:
Код


<a href="#" id="<?php echo $id; ?>" class="add">Добавить</a>
<a href="#" id="<?php echo $id; ?>" class="add">Добавить</a>
<a href="#" id="<?php echo $id; ?>" class="add">Добавить</a>
<a href="#" id="<?php echo $id; ?>" class="add">Добавить</a>
....

id у каждой ссылки будет уникальным, по клике на ссылке этот id должен передаться скрипту.

Код

$(document).ready(function(){
    $(".add").unbind("click").click(function(){
        var id = $(".add").attr("id");
        alert(id);
        $.ajax({
            type:"POST",
            url:"test.php",
            dataType:"text",
            data:{
                id:id
            },
            success: sync,
            error:sync_error
        });

        function sync(data){
            $(data).appendTo(document.getElementById(id));
        }

        function sync_error(){

        }
    });
});

Тут, я пытаюсь открепить обработчик от ссылки, чтобы в переменную id записался текущий id ссылки и выполнился запрос. Однако, происходит только обращение к первой ссылке. 

Пример тут http://jsfiddle.net/49oyL6uj/

Автор: JAYBE 11.8.2014, 14:32
Код

$(document).ready(function(){
    $(".add").unbind("click").click(function(){
        var id = $(this).attr("id");
        alert(id);
        $.ajax({
            type:"POST",
            url:"test.php",
            dataType:"text",
            data:{
                id:id
            },
            success: sync,
            error:sync_error
        });
        function sync(data){
            $(data).appendTo(document.getElementById(id));
        }
        function sync_error(){
        }
    });
});

Автор: Aliance 11.8.2014, 14:37
ID по RFC не может начинаться с цифры. Либо с некого префикса, либо используйте data-* атрибуты (и тогда читайте их через $(selector).data('*')).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)