Jquery загрузить по ссылке, если подтверждено в диалоговом окне - PullRequest
0 голосов
/ 28 августа 2011

У меня есть этот код jquery:

    $("#deletec-box").dialog({
    autoOpen:false,
    resizable:false,
    height:230,
    modal:true,
    buttons:{
        "Confirm":function(){
            window.location=$("a[id*='deletec-confirm']").attr('href');
            $(this).dialog("close");
        },Cancel:function(){
            $(this).dialog("close");
        }
    }
});

$("a[id*='deletec-confirm']").click(function(){
    $("#deletec-box").dialog("open");
    return false;
});

И на веб-странице у меня есть:

<a href="?action=delc&cid=2" id="deletec-confirm2" title="Delete This Record">Delete</a>
<a href="?action=delc&cid=3" id="deletec-confirm3" title="Delete This Record">Delete</a>

Когда вы нажимаете вторую ссылку выше, она использует первую ссылку URL для загрузки,Как я могу получить диалоговое окно JQuery, чтобы получить правильный URL-адрес на основе ссылки, указанной выше?Все, что я хочу сделать, - это если они нажимают на ссылку удаления, которую он запрашивал для подтверждения, если они нажимают кнопку подтверждения в диалоговом окне, я хочу, чтобы URL, на который они первоначально нажимали, продолжался.

1 Ответ

2 голосов
/ 28 августа 2011

У меня есть два предложения:

  1. Использовать API данных jQuery
    Идея в том, чтобы хранить соответствующую информацию в известном месте и использовать еев вашем диалоге.Например:

    $("#deletec-box").dialog({
        autoOpen:false,
        resizable:false,
        height:230,
        modal:true,
        buttons:{
            "Confirm":function(){
                window.location=$('#deletec-box').data('loc');
                $(this).dialog("close");
            },Cancel:function(){
                $(this).dialog("close");
            }
        }
    });
    
    $("a[id*='deletec-confirm']").click(function(){
        $('#deletec-box').data('loc', $(this).attr('href'));
        $("#deletec-box").dialog("open");
        return false;
    });
    
  2. При необходимости измените диалоговое окно с помощью соответствующих кнопок.Это может быть слишком многословно и требует больше работы, чем это стоит, плюс дополнительные затраты на создание большого количества объектов.

    $("#deletec-box").dialog({
        autoOpen:false,
        resizable:false,
        height:230,
        modal:true,
    });
    
    $("a[id*='deletec-confirm']").click(function(){
        loc = $(this).attr('href');
        $('#deletec-box').dialog({
            buttons:{
                    "Confirm":function(){
                        window.location=loc;
                        $(this).dialog("close");
                    },Cancel:function(){
                        $(this).dialog("close");
                    }
            }
        });
        $("#deletec-box").dialog("open");
        return false;
    });
    
...