Ajax POST 和数据目标选择器

Posted

技术标签:

【中文标题】Ajax POST 和数据目标选择器【英文标题】:Ajax POST and data-target selector 【发布时间】:2014-04-21 03:18:54 【问题描述】:

查看底部更新

我正在开发一个服务器目录导航的东西。

我有一个 ajax 脚本,它在更改时获取所选下拉选项的值(该值是所选目录的相对路径),将值发送到 php 函数,然后 php 函数返回一个数组,其中包括用于响应功能的新下拉选项以替换旧选项,以及用于向后导航的面包屑链接。

使用下拉选项发布数据并从 php.ini 获取响应时,一切正常。

但现在我正在尝试复制它,以便单击面包屑链接将执行相同的操作,用于向后导航,但我没有让它响应。在 php 生成的 html 中,给定的 A 标签如下所示:

<a href="javascript:" data-target="'.$piecelink[$k].'">'.$piece.'</a>

所以我使用数据目标的方式与使用下拉列表中的选定值相同。然后我的第二个 ajax 函数只是工作原件的副本,主选择器从下拉列表更改为面包屑链接,on.('change') 更改为on.('click')this.value 更改为this.data('target'),如下所示。但是我没有通过单击面包屑链接得到响应:

(function($) 
    $(document).ready(function()
        $('div#ghsc-upload-path a').on('click', function()
            $.post(
                PT_Ajax.ajaxurl,
                    
                        action : 'ajax-inputtitleSubmit',
                        dataType : 'html',  
                        pathpart : this.data('target'),
                        nextNonce : PT_Ajax.nextNonce
                    ,
                    function( response ) 
                        $container = $('div#ghc-upload-path-container');
                        $putpath = $('div#ghsc-upload-path');
                        $dropdown = $('select#ghsc-upload-directories');
                        $dropdown.empty().append(response.ops).trigger('liszt:updated');
                        $putpath.html(response.path);
                    
            );
            return false;
        ); 
    );
)(jQuery);

有什么建议吗?

更新 我想我知道为什么它不起作用。这是因为 a 元素不在原始页面加载的页面上。但我不知道如何让脚本认识到他们是他们的。我认为这是因为它包含在 document.ready 中,但是如何触发对 dom 的重新扫描?

【问题讨论】:

【参考方案1】:

尝试换行:

$('div#ghsc-upload-path a').on('click', function()

进入

$('div#ghsc-upload-path a').click(function()

我还没有测试过,但它可能会有所帮助

【讨论】:

我也试过了,但没用。不过谢谢。我刚刚使用.live('click', function) 获得了一些基本功能。进一步探索,但 .live() 不是被弃用了吗?【参考方案2】:

找到了。问题不是现场直播,但 .live 已被弃用,所以我去了现场直播页面 (http://api.jquery.com/live/),它向我展示了如何正确转换为 .on()。下面是我如何调用该函数以使其工作:

$( document ).on( 'click', 'span[id^=ghsc-pathpart-]', function()

【讨论】:

以上是关于Ajax POST 和数据目标选择器的主要内容,如果未能解决你的问题,请参考以下文章

从 jquery ajax 成功数据中获取 css this 和 value 选择器

一个简单风格且功能强大的选择器,包括ajax远程数据、自动完成、分页、标记、i18n和键盘导航功能

使用 AJAX 选择下拉菜单选择器时遇到问题

colorbox 无法使用 $(this) 选择器传递 POST 数据

ajax调用后div中的日期选择器不起作用

将 Ajax JQuery 选择器保存在数组中