0

我在此页面上有一堆按标签排序的投资组合项目。链接到该站点。该网站是用 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(),此函数为每个投资组合项目创建滑块。

4

1 回答 1

3

删除包装图像的标签的现有href属性。<a>然后,在给它们一个 unqiue id 后,click通过 javascript 将处理程序添加到每个标签。<a>然后,这将导致在单击图像而不是重定向到新页面时调用 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();}
于 2012-05-04T14:55:23.867 回答