setRenderable($renderable); $this->class('lazy-box'); $this->id('lazy-'.Str::random(8)); } /** * 设置是否立即加载. * * @param bool $value * * @return $this */ public function load(bool $value) { $this->load = $value; return $this; } /** * 获取触发异步渲染JS代码. * * @return string */ public function getLoadScript() { return "$('{$this->getElementSelector()}').trigger('{$this->target}:load');"; } protected function addScript() { $loader = $this->load ? "target.trigger('{$this->target}:load')" : ''; $this->script = <<getElementSelector()}'), body = target; {$this->getRenderableScript()} body.html('
').loading(); {$loader} })(); JS; } public function html() { $this->addScript(); return <<formatHtmlAttributes()}> HTML; } }