【发布时间】:2011-07-10 21:18:05
【问题描述】:
在 CoffeeScript 中,尽管这段代码几乎与 JavaScript 相同:
tabs_html = "<div id='nm-container'><ul><li><a href='#tabs-1'>Guidelines</a></li><li><a href='#tabs-2'>Test</a></li></ul>
<div id='tabs-1'><p>something1</p></div><div id='tabs-2'><p>something2</p></div></div>"
$("#nm-toolbar").append(tabs_html)
$("#nm-container").tabs()
它不起作用。有趣的是,它在尝试最后一行时确实有效:来自控制台的$("#nm-container").tabs()。我在下面附上完整的代码。请注意,我正在使用 CoffeeMarklet 生成似乎仅适用于 chrome 的小书签。
s1 = window.document.createElement('script')
s1.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'
window.document.body.appendChild(s1)
$ ->
s2 = window.document.createElement('script')
s2.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js'
window.document.body.appendChild(s2)
jqueryUIcss = window.document.createElement('link')
jqueryUIcss.rel = 'stylesheet'
jqueryUIcss.type = 'text/css'
jqueryUIcss.href = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/blitzer/jquery-ui.css'
window.document.head.appendChild(jqueryUIcss)
if $("#nm-toolbar").length == 0
toolbar = "<div id='nm-toolbar'></div>"
$("body").append(toolbar)
$("#nm-toolbar").css({
'background': '#fafafa',
'height': '500px',
'width': '400px',
'position': 'fixed',
'bottom': '0px',
'right': '20px',
'padding': '5px'
})
tabs_html = "<div id='nm-container'><ul><li><a href='#tabs-1'>Guidelines</a></li><li><a href='#tabs-2'>Test</a></li></ul>
<div id='tabs-1'><p>something1</p></div><div id='tabs-2'><p>something2</p></div></div>"
$("#nm-toolbar").append(tabs_html)
$("#nm-container").tabs()
【问题讨论】:
-
CoffeeMarklet 工具似乎使用了 Ben Alman 的 jQuery 加载解决方案,可以在这里看到它的未压缩形式:benalman.com/code/javascript/jquery/…
-
这很奇怪。当我只使用自动添加 jQuery 时它不起作用,当我使用我自己的代码时它仍然不起作用但它一起加载 jquery。奇怪。
-
我认为您需要修改 Ben Alman 的代码,以便在执行
.noConflict之前加载 jQuery UI。
标签: javascript jquery jquery-ui bookmarklet coffeescript