0

我有一个从烂番茄 API 显示在名为浏览的页面中的电影的无序列表(使用 Laravel 框架)。我正在尝试使用 AJAX 将内容从单独的文件加载到 div 中,当用户单击锚点时,我已将其设置为名为 movie 的路由。

在我的路线文件中,我有这个: Route::get('browse', array('as'=>'browse', 'uses'=>'browse@index')); Route::get('movie', array('as'=>'movie', 'uses'=>'browse@movie'));

浏览位于 /application/views/browse/index.blade.php 的视图

$movies = $search_results->movies;
echo '<div id="browse">';
echo '<ul class="movieResults">';
  foreach ($movies as $movie) {
    echo '<div class="movieCard">'; 
    echo '<li><img src="'. $movie->posters->detailed .'"</li>';
    echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a></li>'; // HERE'S WHERE I HAVE THE PROBLEM
    echo '</div>';
  }
echo '</ul>';
echo '</div>';

电影视图位于 /application/views/browse/movie.blade.php。我现在有虚拟文本

echo '<div class="details">';

回声'

测试

'; 回声'';

浏览控制器

public $restful = true;
  public function get_index() 
  {
    return View::make('browse.index')
    ->with('title', 'Browse Movies');
  }
}

Javascript 文件 $(function() { $('.movi​​e').click(function() { $('.details').load(this.href); return false; }); });

该项目可以在这里找到

4

1 回答 1

0

似乎您使用了错误的“this”运算符。如果是 jQuery 脚本,应该是“$(this)”吗?(JavaScript 部分...)

另外:你告诉它将“.load()”的结果添加到“.details”中,但我看不到你的 html 代码中有这样的字段?

编辑

在 /application/views/browse/index.blade.php 中更改以下内容:

echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a></li>';

echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a><div class="details"></div></li>';

并从响应中删除“div.details”,因此响应仅返回您想要的详细信息中的文本。

然后,在 JavaScript 中:

$(function() { 
    $('.movie').click(function() {
        $('.details').load($(this).href);
        return false;
    });
});
于 2013-04-25T08:53:34.877 回答