1

当我单击一个链接时,我需要post通过ajax. 问题是请求因打开链接而被丢弃。

jQuery('#pagination a').click(function(){
    jQuery.post('index.php?option=com_component',
        {checked_sites_for_session: jQuery('.selected-site input[type="checkbox"]').map(function () {return this.value;}).get()}
    ).success(function(){window.location = jQuery(this).attr('href')});
    console.log(jQuery(this).attr('href'));
    return false;
});

但同样的问题是(感谢 joomla)在 url - 就像/~user/joomla/index.php/view-sites?view=sites&page=2你看到它从斜杠开始,但真正的链接是http://localhost/~user/joomla/index.php/view-sites?view=sites&page=2,但在源代码中我有<a href="index.php?option=com_component&view=sites&.'.$option.'page='.$left。 '"//....`

所以我需要一些“多用途域解析解决方案”,或者只是停止 joomla 更改我的网址。

4

2 回答 2

2

使用本机 element.href 将为您提供包括域在内的整个 href,而不仅仅是属性值,this在 $,post 函数中使用的关键字也存在范围问题:

$('#pagination a').on('click', function(e){
    e.preventDefault();
    var self = this;
    $.post('index.php?option=com_component',
        {checked_sites_for_session: $('.selected-site input[type="checkbox"]').map(function () {
                 return this.value;
            }).get();
        }
    ).success(function(){
        window.location = self.href;
    });
});

从您发布的链接来看,它们看起来根本不一样,因此您可能必须为此弄清楚一些事情,因为某些 CMS 解决方案使用重写等。

于 2012-11-21T10:20:59.193 回答
-1

这个问题

    jQuery('#pagination a').click(function(e){
    e.preventDefault();
var me=this;
        jQuery.post('index.php?option=com_component',
            {checked_sites_for_session: jQuery('.selected-site input[type="checkbox"]').map(function () {return this.value;}).get()}
        ).success(function(){window.location = jQuery(this).attr('href')});
        console.log(jQuery(me).attr('href'));
        return false;
    });
于 2012-11-21T10:20:45.143 回答