在外部js文件中使用.on时出错 - jquery 1.7.2

时间:2013-01-23 23:47:38

标签: javascript jquery external

我为此代码创建了一个外部JS文件:

$(document).ready(function () {
  $(document).on("click", '.siteusemore', function ()
  //$('.siteusemore').on("click",function() 
  {
    var ID = $(this).attr("id");
    if (ID) {
      $("##siteusemore" + ID).html('<img src="/images/processing.gif" />');
      $.ajax({
        type: "POST",
        url: "/ajax_results.cfm?rpp=#url.rpp#&ajax_type=my_profile&status_action=#url.status_action#&comments_action=#url.comments_action#&myscript=#urlencodedformat(arguments.myscript)#",
        data: "lastmsg=" + ID,
        cache: false,
        success: function (html) {
          $("ol##siteuseupdates").append(html);
          $("##siteusemore" + ID).remove();

        }
      });
    } else {
      $(".siteusemorebox").html('The End');
    }
    return false;
  });

  $(document).on("click", '.teamsusemore', function ()
  //$('.teamsusemore').live("click",function() 
  {
    var ID = $(this).attr("id");
    if (ID) {
      $("##teamsusemore" + ID).html('<img src="/images/processing.gif" />');
      $.ajax({
        type: "POST",
        url: "/ajax_results.cfm?rpp=#url.rpp#&ajax_type=my_teams&myscript=#urlencodedformat(arguments.myscript)#",
        data: "lastmsg=" + ID,
        cache: false,
        success: function (html) {
          $("table##grouplisting").append(html);
          $("##teamsusemore" + ID).remove();

        }
      });
    } else {
      $(".teamsusemorebox").html('No more records.');
    }
    return false;
  });

  $(document).on("click", '.teamsusemore', function ()
  //$('.leaguesusemore').live("click",function() 
  {
    var ID = $(this).attr("id");
    if (ID) {
      $("##leaguesusemore" + ID).html('<img src="/images/processing.gif" />');
      $.ajax({
        type: "POST",
        url: "/ajax_results.cfm?rpp=#url.rpp#&ajax_type=my_leagues&myscript=#urlencodedformat(arguments.myscript)#",
        data: "lastmsg=" + ID,
        cache: false,
        success: function (html) {
          $("table##leaguelisting").append(html);
          $("##leaguesusemore" + ID).remove();

        }
      });
    } else {
      $(".leaguesusemorebox").html('No more records.');
    }
    return false;
  });
});

当我调用它时,它会在jquery 1.7.2.min.js

中抛出一个脚本错误
  

行:3错误:语法错误,无法识别的表达式:#

脚本的目的是在页面上发生的所有三个单独的ajax事件。

<div id="siteusemore#evaluate(currentpage + 1)#" class="siteusemorebox">    
    <a href="##" class="siteusemore" id="#evaluate(currentpage + 1)#">View more items</a>
</div>

1 个答案:

答案 0 :(得分:2)

您将在选择器中遇到许多哈希问题。问题是jQuery使用'#'来查找具有该ID的内容。试图从jQuery的角度来阅读它,你试图告诉它找到一个具有siteusemore的ID和evaluate的ID(currentpage + 1)然后ID ......好吧,没什么,因为哈希在最终没有意义。我会从您的ID中删除哈希值和括号,然后重试。