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

Uncaught syntax error with jquery plugin and chrome, works fine in other browsers

本文关键字:chrome 其他 浏览器 工作 插件 语法 错误 jquery      更新时间:2023-09-26

基本上我正在尝试开发一个简单的插件,使我们能够动态地从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 );

这行不通。您不能像那样附加一团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 );
相关文章: