javascript - 使用 AJAX 加载投资组合项目,无需重新加载页面

标签 javascript ajax joomla

我在此页面上有一堆按选项卡排序的投资组合项目。 Link to the site 。该网站是用 Joomla 2.5 构建的,我有一个组件负责显示每个投资组合项目。 我需要做的是加载每个相应的投资组合项目,而不重新加载页面。所以基本上这里是具有 AJAX 调用的 javascript 函数

function ajax_portfolio($pid) {
var url = 'index.php?option=com_jms_portfolio&task=item.ajax_load_portfolio&tmpl=component&id=' + $pid;
alert(url);
var x = new Request({
    url: url, 
    method: 'post',
    evalScripts: true,
    evalResponse: true,  
    onSuccess: function(responseText){
        document.getElementById('ja-content-main').innerHTML = responseText;
        aaa();
    }

    }).send();}

问题实际上不是AJAX调用原因和标签的点击事件,这个事件没有问题。问题是在每次 ajax 调用后触发 javascript 函数 aaaa() 。抱歉,如果我不清楚,问题是在每次 ajax 调用后触发函数 aaa(),该函数为每个投资组合项目创建 slider 。

最佳答案

删除现有的href <a> 的属性包裹图像的标签。然后,添加 click通过 javascript 处理程序到每个 <a>给他们一个独特的ID后标记。这将导致在单击图像时调用 ajax,而不是重定向到新页面。

至于调用aaa函数,我认为问题是范围,因为您还没有发布该方法。给予aaa正确的范围,您可以将额外的参数传递给 ajax_portfolio 来完成此操作。

一个JQuery示例如下。

<a port_id="56"><img>...</img></a>

$(document).ready(function() {
  $("a").click(function() {
    ajax_portfolio($(this).attr("port_id"), $(this));
  });
});

// Add the $elem parameter here to track which element called this method.    
function ajax_portfolio($pid, $elem) {
  var url = ...;
  var x = new Request({
    url: url, 
    method: 'post',
    evalScripts: true,
    evalResponse: true,  
    onSuccess: function(responseText){
      document.getElementById('ja-content-main').innerHTML = responseText;
      // Pass the element that was clicked on to the aaa function.
      aaa($elem);
  }
}).send();}

关于javascript - 使用 AJAX 加载投资组合项目,无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451100/

相关文章:

javascript - 提交表单时页面刷新重定向到另一个页面

javascript - 如何将图像放入数组中

jquery - 模式对话框不关闭 Bootstrap

joomla - 如何在 joomla 模块中设置表单的操作

将安装从一台服务器移动到另一台服务器后,Joomla 在登录后显示空白页面

javascript - 从顶部定位所有 div 元素

javascript - 显示表单上所有选定单选按钮的值

php - 在同一页面上显示 MySQL 查询

javascript - javascript 中的多个数组无法传递值

mysql - 使用 phpMyAdmin 导入 SQL 文件时出错