基本上我正在尝试开发一个简单的插件,允许我们直接从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 );
答案 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 );