buildIMG = (src, resize) ->
html = '<div class="left"><div class="foods_image">'
html += '<a onclick="popitup("http://somewhere.com/test" href="javascript:void(0)">'
html += ' <img src="'+src+'" '+resize+' />'
html += '</a>'
html += '</div></div>'
html
popitup = (url) ->
newwindow=window.open(url,'name','height=640,width=640')
newwindow.focus() if window.focus
false
我目前有一個書籤,它將JavaScript代碼(上面的那個)插入網站。我寫了上面的咖啡腳本,它生成了:刪除CoffeeScript匿名函數調用
(function() {
var buildIMG, popitup;
buildIMG = function(src, resize) {
var html, nbsp;
html = '<div class="left"><div class="foods_image">';
html += '<a onclick="popitup(\'http://somewhere.com/test\');" href="javascript:void(0)">';
html += ' <img src="' + src + '" ' + resize + ' />';
html += '</a>';
html += '</div></div>';
return html;
};
popitup = function(url) {
var newwindow;
newwindow = window.open(url, 'name', 'height=640,width=640');
return newwindow.focus()(window.focus ? false : void 0);
};
}).call(this);
我剪掉了使用buildIMG的函數。該功能在網站上創建疊加層並顯示該疊加層中的所有圖像。爲每個圖像調用buildIMG來創建html。
問題是onclick="popitup("http://somewhere.com/test"
部分不起作用。它是未定義的。
的溶液我所做的就是刪除此將其通過CoffeeScript的產生:
(function() {
}).call(this);
如我刪除它被儘快固定。如何在生成的JavaScript中將CoffeeScript放入這些行中?
如果您不明白它的功能和原因,請先了解一下。它很漂亮,習慣用法,並且有很好的理由。 – delnan 2012-04-04 10:17:57
它把函數放在我從代碼中理解的'global namespace'中。 – 2012-04-04 10:27:59
然後你就不明白了。整個觀點是*不*將任何東西放入全局命名空間。 – delnan 2012-04-04 10:35:22