Как получить значение href для события onclick на основе селектора «класс» в Javascript? - PullRequest
1 голос
/ 09 июня 2009

у меня

<a href="test.php?id=2" class="confirm_delete">Click to proceed</a>

и следующий javascript. Когда я нажимаю на ссылку выше, она отображает диалоговое окно с 2 кнопками. "вернуть ложь"; останавливает событие по умолчанию тега ссылки. Но мне нужна функциональность, при которой, когда я нажимаю «Да, удалить», я могу перейти на другую страницу, выбрав значение href для привязанного якоря. Я пробовал оповещение ($ (this) .attr ('id')); (как я думал, я мог бы получить значение HREF, используя «this.attr ('href')»), но он отображает «диалог».

Как мне заставить его работать так, чтобы, когда я нажимал на ссылку с именем класса «verify_delete», он отображал мне диалоговое окно, и если я нажимал «Отмена», он оставался на странице, в противном случае переходил на страницу согласно значению href.

$(".confirm_delete").click(function(){
    $('<div id="dialog">Are you sure you want to delete?</div>').appendTo('body');
    $("#dialog").dialog({
        bgiframe: true, resizable: false, height:140, modal: true,
        overlay: {
            backgroundColor: '#000', opacity: 0.5
        },
        buttons: {
            'Yes, Delete all items in recycle bin': function() {
                $(this).dialog('close');
                $(this).remove();
                alert($(this).attr('id'));
            },
            Cancel: function() {
                $(this).dialog('close');
                $(this).remove();
            }
        }
    });
    return false;
    });

Спасибо.

Ответы [ 3 ]

0 голосов
/ 09 июня 2009

ОК, я могу получить значение HREF var url = $ (this) .attr ('href'); сразу после $ (". verify_delete"). click (function () { линия. Это дает мне «test.php? Id = 123». Осталось только создать / получить полный URL и перенаправить на этот URL.

Спасибо

0 голосов
/ 09 июня 2009

Это должно сработать:

$(".confirm_delete").click(function(){
       var $delete = $(this);
       ...
        $("#dialog").dialog({
                ...
                buttons: {
                        'Yes, Delete all items in recycle bin': function() {
                                $(this).dialog('close');
                                $(this).remove();
                                alert($delete.attr('id'));
                        }
                }
        });
        return false;
});
0 голосов
/ 09 июня 2009

Прежде всего: старайтесь не использовать подчеркивания в именах классов. Я где-то читал, что они могут вызвать проблемы ...

Ну, вот:

$('a.confirm-delete').click( function(event) {
    if( !confirm('are you sure you want to go?') ) return false;
});

здесь я использовал диалог подтверждения javascript. Вы можете легко заменить это на модальное диалоговое окно jquery.

JRH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...