使用jquery插件和chrome的未捕获语法错误,在其他浏览器中工作正常

时间:2011-11-02 21:56:50

标签: javascript jquery json google-chrome

基本上我正在尝试开发一个简单的插件,允许我们直接从JSON动态生成GA onclicks。所以我开发了这个快速脚本。效果很好,但Chrome会激活“Uncaught SyntaxError:Unexpected identifier”

建议?

测试HTML文件:

<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="modules/onclicks/onclickify.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
    $.getJSON('modules/onclicks/clicks.json', function(data) {
        $('#analytics').onclickify(data);
    });
});

</script>
<script id="analytics"></script>

jQuery插件文件

(function( $ ){



$.fn.onclickify = function(clicks) {  

var onclicks = "";

return this.each(function() {

  $.each(clicks, function(key, value){

    onclicks += "$('"+value.selector+"')";
    onclicks += ".live('click', function(){\n";
    onclicks += "_gaq.push(['_trackEvent',";
    onclicks += value.name+"','";
    onclicks += value.label+"','";
    onclicks += value.action+"');\n";
    onclicks += "});\n\n";

  });

  $(this).append(onclicks);

});

};
})( jQuery );

1 个答案:

答案 0 :(得分:1)

那不行。你不能附加一大堆这样的jQuery源代码。嗯,你可以,但它不会像你想象的那样做任何事情。

我不确定你到底要做什么,但我你可以这样做:

(function( $ ){



$.fn.onclickify = function(clicks) {  

   return this.each(function() {

     $.each(clicks, function(key, value){

      $(value.selector)
        .live('click', function(){
         _gaq.push(['_trackEvent',
           value.name,
           value.label,
           value.action
         ]);
       });
     });
   });

  };
})( jQuery );