首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在pjax重新加载容器后,Laravel livewire click未执行

在pjax重新加载容器后,Laravel Livewire的click未执行是因为Livewire组件在pjax重新加载容器后需要重新绑定事件。Livewire是一个用于构建动态Web界面的框架,它使用了AJAX和服务器端渲染的方式来实现实时更新页面的效果。

当使用pjax重新加载容器时,Livewire组件的JavaScript绑定会丢失,导致click事件无法执行。为了解决这个问题,可以在pjax加载完成后,手动重新绑定Livewire组件的事件。

以下是解决该问题的步骤:

  1. 在pjax加载完成后,找到Livewire组件所在的容器元素。
  2. 使用Livewire的wire:ignore指令将该容器元素排除在Livewire的更新范围之外,以防止Livewire重新渲染该容器。
  3. 在pjax加载完成后,使用JavaScript代码重新绑定Livewire组件的事件。可以使用Livewire提供的Livewire.hook()方法来监听Livewire的钩子事件,例如component.initializedcomponent.hydrated事件。
  4. 在事件回调函数中,使用Livewire的Livewire.find()方法找到重新加载的Livewire组件,并重新绑定事件。

下面是一个示例代码:

代码语言:txt
复制
$(document).on('pjax:complete', function() {
  // 找到Livewire组件所在的容器元素
  var container = $('#livewire-container');

  // 使用wire:ignore指令排除该容器元素
  container.attr('wire:ignore', true);

  // 重新绑定Livewire组件的事件
  Livewire.hook('component.initialized', function(component) {
    if (component.$el.is(container)) {
      // 找到重新加载的Livewire组件并重新绑定事件
      var livewireComponent = Livewire.find(component.id);
      livewireComponent.on('click', function() {
        // 点击事件的处理逻辑
      });
    }
  });
});

在上面的示例中,#livewire-container是Livewire组件所在的容器元素的选择器。在pjax加载完成后,我们使用pjax:complete事件来监听pjax加载完成的时机。然后,我们使用Livewire的Livewire.hook()方法来监听Livewire的component.initialized事件,并在事件回调函数中重新绑定Livewire组件的click事件。

请注意,上述代码中的Livewire对象是指Laravel Livewire框架提供的全局对象,你需要确保在页面中正确引入了Livewire的JavaScript文件。

希望以上解答对您有帮助!如果您需要了解更多关于Laravel Livewire的信息,可以参考腾讯云的Laravel Livewire产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pjax使用小结

pjax 结合 pushState 和 ajax 技术, 不需要重新加载整个页面就能从服务器加载 Html 到你当前页面,这个 ajax 请求会有永久链接、title 并支持浏览器的回退/前进按钮。...使用pjax,由于只刷新部分页面,切换效果更加流畅,而且可以定制过度动画,等待页面加载的时候体验就比较舒服了。...加载新页面前会把原页面的内容缓存起来,缓存加载其中的脚本会再次执行 ) version 是一个函数,返回当前页面的pjax-version,即页面中 <meta http-equiv="x-<em>pjax</em>-version...点击链接<em>后</em>触发的一系列事件, 除了 <em>pjax</em>:<em>click</em> 和 <em>pjax</em>:clicked 的事件源是点击的按钮,其他事件的事件源都是要替换内容的<em>容器</em>。...可以<em>在</em> <em>pjax</em>:start 事件触发时开始过度动画,<em>在</em> <em>pjax</em>:end 事件触发时结束过度动画。 事件名 支持取消 参数 说明 <em>pjax</em>:<em>click</em> ✔ options 点击按钮时触发。

2.8K40

如何将Pjax整合进网站,实现全站无刷新加载

/返回正常的模板 这里用laravel的方法展示了下,TP中是$this->display()这里不再赘述。...解决问题 问题:原先容器绑定的事件被新容器替换掉了,新容器的div没有绑定事件,所以JQ等绑定的事件无效。如多说评论框无法正常使用。 解决:用pjax加载完成的回调函数再次绑定即可!...() { $(".loading").css("display", "block");//pjax链接点击显示加载动画; }); $(document).on('pjax:complete'..., function() { $(".loading").css("display", "none");//pjax链接加载完成隐藏加载动画; }); pjax与百度编辑器代码高亮...使用pjax,百度编辑器的代码高亮是没效果的,回调中使用SyntaxHighlighter.all()是没任何效果的,我们只需回调函数里调用下SyntaxHighlighter.highlight

4K90

关于 Laravel 应用性能优化的几点建议

前言 很多人吐槽 Laravel 框架性能不行,在我看来,除了每次新请求应用启动阶段由于 Laravel 框架本身的设计,导致服务容器加载服务确实增加了一些耗时外(不过这是由于 PHP 作为动态语言不能常驻内存...,进而导致每次新请求需要重新初始化服务容器导致的,换做是常驻内存的静态语言,这反而可以是优点),我们是可以通过一些常规的手段将 Laravel 应用的性能优化到一个合理的水平的。...其实是针对 Laravel 项目通用的优化手段(请在线上生产环境执行这些优化命令,不要在开发环境执行,因为开发环境文件变动频繁,缓存没有意义,反而增加了清除缓存的麻烦): 路由缓存:通过 php artisan...注:以上三个优化手段 Laravel 部署文档中都有提及,从 Laravel 8 开始,路由缓存开始支持闭包路由,此前是不支持的,需要将所有路由处理重构为基于控制器动作方可,此外,运行 php artisan...预告篇:接下来,学院君更新完全栈工程师系列基础篇第三幕 Vue.js 教程,会全面演示 Laravel 框架如何从无到有基于 TDD 模式进行实战项目开发,包含后续性能优化、持续集成和应用部署等完整的应用开发周期

3.5K21

为什么 Laravel 这么优秀?

我们知道容器只有两个功能: 1. 装东西(bind) 2. 从容器里取东西(get) 所有用到容器的框架其本质都是框架启动的时候疯狂的往容器里装东西,容器里面的东西越多,容器提供的功能越大。...container 中设置不同的值;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续使用 Cache::get 时就使用的是这里注册的 Cache 对象,注册阶段不应该向容器中获取值...Laravel 会自动帮我们从容器中获取它,如果容器不存在,则会尝试初始化它。...,每一层都可以决定是否继续向下执行,而最后的心脏部分是最终要执行的操作。...这里还有个例子是 Laravel 之前推出了 Laravel Bootcamp 用来教新人怎么快速上手 Laravel,但这之前只推出了两个版本,即 Livewire 和 Inertia,好在是被社区大佬及时反应再后来加上了最原始的

15310

Typecho插件 - 为你的文章生成海报

2.生成海报保存到插件目录下的poster文件夹,节省第二次生成时间。 3.使用必应每日一图作为头图,每天的文章都有不同的新鲜感。 4.支持自定义按钮样式,方便同一主题样式,不会突兀。...2020-03-19临时更新 为防止插件被别有用心的人收费,特加入鉴权机制,需要申请token之后才可以使用(免费哒) 增加模态框展示海报,直接下载太丑了 再再再次修复无法pjax...主题中使用 自定义按钮样式不再是article-poster,请改成article-poster-button 下一个版本再加检测更新 2020-03-19更新说明 修复无法pjax主题中使用 将...,可以开启加载jquery 5.修改图标部分可以找到/usr/plugins/ArticlePoster/js/core.js,修改注释部分图标样式 pjax适配 自1.0.6之后重新调整对于pjax的适配方案...,如果主题有pjax回调可以直接填下以下代码,如果没有那么推荐你使用Cuckoo主题 $('.article-poster-button').on('click',function(){ create_poster

61140

Laravel 8 正式发布,一起来看看有哪些新特性吧

下面我们一起来速览下这些新特性: Laravel Jetstream Laravel Jetstream 是之前版本上进行优化和全新设计的 Laravel UI 脚手架代码: 其中包含了登录、注册、邮箱验证...Jetstream 使用的 CSS 框架是 Tailwind CSS,并且提供了 Livewire 和 Inertia 脚手架选项,你可以任选其一进行前端组件开发。...8 开始,你可以将它们压缩到单个 SQL 文件中,该 SQL 文件会在运行迁移命令之前执行,然后再执行其他压缩的迁移文件。...该功能可以有效降低迁移文件的数量,并且测试时提升性能。 优化访问频率 Laravel 8 优化了之前已经存在的访问频率限制功能 —— 支持向后兼容 throttle 中间件,并且提供了更高的灵活性。...时间测试辅助函数 Laravel 中,一直都可以通过 PHP Carbon 库完全控制时间的修改,Laravel 8 则在此基础上往前更进一步 —— 测试时使用一个更加方便的辅助函数来操作时间:

2.6K30

Speed丨如何快速给网站添加Pjax

绑定本页面非新窗口打开的所有本域链接,链接点击,替换contentleft容器内容为新内容contentleft,ajax超时时间8秒     $(document).pjax('a...问题比如:pjax之后多说评论框不加载,ajax评论不能提交等等问题。 问题原因:原先容器绑定的事件被新容器替换掉了,新容器的div没有绑定事件,所以点击无效。...解决方法:利用pjax加载完成回调函数,重新绑定事件。...() { //pjax链接点击显示加载动画;     $(".pjax_loading").css("display", "block"); }); $(document).on('pjax:complete...', function() { //pjax链接加载完成隐藏加载动画;     $(".pjax_loading").css("display", "none");     pajx_loadDuodsuo

1.8K40

我是如何通过开源项目做到年入 80 万的?

今天重新提起赚钱这个话题,是因为凌晨的时候,我偶然刷到 Hacker News 排名第一的帖子:《我通过 GitHub 赞助商达成年入 10w 刀的成就》: ?...当他 Laravel 上成功验证了其项目概念,便开始着手开发 livewire 这一开源项目。 ?...https://github.com/livewire/livewire 这是一个专门针对 Laravel 开发的一个全栈框架,主要目的是为了减少开发者构建网站动态界面时的痛苦,提升网站开发速度。...完成上述三个阶段的具体工作,随着时间的积累,该开源项目的年赞助费成功达到了 80w 人民币。 能做到这个地步,绝非易事。技术、产品、营销几项能力,缺一不可。...写开源软件能不能赚钱这件事情上,我一直是有话语权的,因为我自己本人曾在 2015 年的时候写过一个开源项目,当时这个项目各大社区推广,累积增长了 1000 多 Star(15 年这个 Star 还是有一定含金量的

92720

Typecho生成海报(cuteen主题版)

(4)如果你的模板没有引入 jquery 或者上述过程都设置好了点击按钮无响应,可以开启加载 jquery (5)修改图标部分可以找到 /usr/plugins/ArticlePoster/js/core.js...,修改注释部分图标样式 pjax 适配 自 1.0.6 之后重新调整对于 pjax 的适配方案,如果主题有 pjax 回调可以直接填下以下代码 $('.article-poster-button...').on('click',function(){ create_poster(); }); $('[data-event=\'poster-close\']').on(...'click', function(){ $('.article-poster, .poster-popover-mask, .poster-popover-box').fadeOut(...; }); 按照原作者写的应该是可以在后台pjax调用,但是Cuteen主题貌似没什么用 其他主题就不知道了,所以我直接在 footer.php中直接添加了 图片 自定义按钮样式,插件中添加

60220

bug 导致 77 TB数据被删光,HPE 称 100% 负责:执行过程中重新加载修改的shell脚本,从而导致未定义的变量

该公司承认:“我们对这个修改的脚本的发布程序缺乏考虑……我们没有意识到这种行为带来的副作用,脚本仍在运行时就发布「更新版」,结果覆盖了脚本。”...HPE补充道:“这导致了执行过程中重新加载修改的shell脚本,从而导致未定义的变量。结果,「大容量备份磁盘存储」中的原始日志文件被删除,而原本应该删除保存在日志目录中的文件。”...京都大学已暂停了受影响的备份流程,但计划在解决程序中的问题本月底之前恢复。它建议用户将重要文件备份到另一个系统。 京都学校和HPE都声称,他们将采取措施防止此类事件再次发生。  ...相关阅读 · 备份、数据丢失,工程师被开除:法院判合理合法

1.9K20

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。

之前写了一篇Laravel提高DB查询效率的文章,转发到群里竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。” 纳尼,什么意思嘛?别忘了PHP是最好的语言!...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...如果该目录不存在,则框架将假定你的模型应放置 app 目录。 模型工厂类 模型工厂类由泰勒・奥特威尔(Taylor Otwell)贡献。...现在假定我们的 User 模型有一个 posts 关联方法,我们只需要执行下面的代码就可以生成一个有 3 篇文章的用户。.../legacy-factories 扩展包,可以 Laravel 8 中支持以前的模型工厂。

2.4K60

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(2)模型工厂类

之前写了一篇Laravel提高DB查询效率的文章,转发到群里竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。” 纳尼,什么意思嘛?别忘了PHP是最好的语言!...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...如果该目录不存在,则框架将假定你的模型应放置 app 目录。 模型工厂类 模型工厂类由泰勒・奥特威尔(Taylor Otwell)贡献。...现在假定我们的 User 模型有一个 posts 关联方法,我们只需要执行下面的代码就可以生成一个有 3 篇文章的用户。.../legacy-factories 扩展包,可以 Laravel 8 中支持以前的模型工厂。

2.7K41

Typecho教程 - ArticlePoster使用问题综合帖

jquery) 插件设置引入 jquery,点按钮无效 (解决:那就是已经引入了,不引入即可) 刷新页面就可以生成了 (解决:多半模板是 pjax 的,加一个 pjax 回调就行了,代码看最下面).../* ArticlePoster - Pjax回调 */ $('.article-poster-button').on('click',function(){ create_poster()..., .poster-popover-box').fadeOut() }); $('[data-event=\'poster-download\']').on('click', function(){...自定义海报字体教程 找到插件目录 /service/inc/fonts/msyh.ttf,换成自己想要的字体就行了,记得名称要一样 提示:更换字体可能会导致海报排版错误,有能力的自己搞定 文章缩略图加载不出来...插件设置取消加载 jquery 即可 (面对大部分主题有效) 最后的话 这些都是这么长时间总结下来的,陆续更新中....

50020
领券