【问题标题】:Ajax Template in Silverstripe and internal linksSilverstripe 中的 Ajax 模板和内部链接
【发布时间】:2013-10-03 19:15:31
【问题描述】:

我最近发布了一个关于如何在 SilverStripe 3 中使用 Ajax 加载新页面的问题,而当用户单击菜单项时,背景图像(取决于侧面)会像幻灯片一样发生变化。可以在此处找到问题和有用的答案:Loading a new page with sliding animation in Silverstripe 3 (with Ajax?)

我已经按照上一篇文章中的建议建立了网站,一切似乎都运行良好,除了一件事:

当我单击我的 Ajax 模板中的链接时,页面会以正常方式加载,而不是按需要通过 Ajax 加载。 (例如,当我有一个像这里描述的博客或团队结构时会发生这种情况:http://doc.silverstripe.org/framework/en/tutorials/2-extending-a-basic-site 或者当一个页面有指向我网站的另一个页面的链接时)是否有可能以某种方式改变它?我想总是通过 Ajax 加载页面。这可能吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: ajax jquery load silverstripe


    【解决方案1】:

    我猜你正在以i suggested in your previous question 的方式向链接添加点击处理程序:

    $('a').click(function(){...});
    

    但是当您通过 ajax 加载新的 html 时,click 事件未绑定(因为这已经发生了)。

    您可能想在此处使用事件委托:

    $('body').on('click', 'a', function(){...});
    

    这样事件总是被触发,因为它总是冒泡到主体。

    【讨论】:

    • 不错!谢谢!现在我需要排除外部链接和在新窗口中打开的链接......我读了一些关于它的东西......如何做到这一点,但不幸的是找不到链接了:/
    • 你可以简单地在锚标签中添加一个类来识别链接类型,然后使用'a.external'或类似的方法来选择它们?
    • 我刚试过:$('body').on('click', 'a:not([target="_blank"])', function(e){...}) ;现在似乎像预期的那样工作..耶! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多