【问题标题】:Javascript not working when rendering a view using ajax使用 ajax 渲染视图时 Javascript 不起作用
【发布时间】:2017-07-28 10:56:17
【问题描述】:

我的结构是这样的

head.blade.php

<html class="no-js">
<head>
    <title></title>
</head>

<body class="page">
@include('layouts.sidepanel')

sidepanel.blade.php

div class="sidebar">
<ul>
   <li>
      <a href="#" class="menu-item" onclick="getPages({method: 'page',httpMethod: 'GET',uri: 'page',});">Page</a>
   </li>
</ul>
</div>

foot.blade.php

<script type="text/javascript" src={{ asset('js/jquery.js') }}></script>
<script type="text/javascript" src={{ asset('js/scripts.js') }}></script>    
    </body>
</html>

base-layout.blade.php

@extends('layouts.head')


<main class="with-footer">

    <div class="row main-grid">
        @yield('content')
    </div>
</main>
@include('layouts.foot')

控制者

public function getSettings() {

        $settings = DB::table('settings')->get();

        $returnHTML = view('settings')->with('settings', $settings)->render();
        if($request->ajax()) {
            return response()->json(array('success' => true, 'data'=>$returnHTML));
        }
    }

settings.blade.php

@extends('layouts.base-layout')
@section('content')
<p>Test</p>
@endsection

还有这个javascript函数

function getPages(params) {
    $.ajax({
        type: params.httpMethod,
        url: params.uri
    }).done(function (data) {
        switch (params.method) {
            default:
                if (data.success) {
                    if (data.data) {
                        $('.main-grid').html(data.data).fadeIn();
                    }
                }
                break;
        }
    })
}

扩展 settings.blade.php 中的基本布局将复制主网格类中的侧边栏,并且 js 正在工作,但我不想在设置中的另一个页面与主页面完全相同,我只想要内容以及 js 在渲染时工作。

我也尝试过 renderSection()['content'],但结果相同。

【问题讨论】:

  • 我认为base-layout.blade.php这行@extends('layouts.head')有问题,应该是include而不是extends?
  • 包含或扩展没有区别。

标签: php laravel-5 blade


【解决方案1】:

尝试像这样调用你的函数:

$('#container_id').on('click', '.post_button, .btn_favorite', function () { });

它会起作用的。

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多