2010-07-24 27 views
13

是否有一个项目(开放源代码)为jQuery UI提供小部件和插件,但允许我们在不设置任何HTML的情况下使用它们?没有HTML的jQuery UI

有点像Ext-jsSproutcore,但没有acidental复杂性和缺乏流动性的,并且更喜欢Cappuccino,但不要求一Mac和从目的-j中的可怕的加载时间(它也没有IDE支持)。此外,更像Ukijs,但更多的小部件。有点像PyjamasGWT,但没有缺少小部件,预编译步骤和/或Java。例如:

uki({ 
    view: "Button", text: "Hello world!", 
    rect: "120 80 180 24", 
    click: function() { alert(this.text()); 
}).attachTo(document.getElementById("test")); 

我走的jQuery的原因是因为它是唯一的web框架,支持所有30 essential controls(与enough plugins给出)。

+0

这可能是一个jQuery插件的好主意,如果你问我。但请记住,如果用户禁用JavaScript - 这种代码页面上没有内容。 – 2010-08-09 16:44:12

+2

是的。就像它不会为卡布奇诺,sproutcore,ukijs或extjs工作。这些是Web应用程序的框架,而不是网页。 – 2010-08-09 17:44:32

+0

让JavaScript写HTML会极大地减慢你的页面!如果你对使用HTML没有信心,你应该学习它。但是,如果你只是出于动态的原因需要它... – UpHelix 2010-08-11 18:47:36

回答

2

我不认为一个合适的DSL存在的那一刻,我能想到的最接近的是CoffeeScript的

http://jashkenas.github.com/coffee-script/

这也将是一个很好的起点,从打造。

+2

Coffescript是“源代码”编译为javascript的全新语言。它甚至与UI或Jquery没有远程关联。建立在Coffescript上会令人愉快,但Javascript人已经看到了这个节目:带有GWT的Java,带卡布奇诺的Objective-J,以及服务器上所有其他语言的所有Web框架。我不介意使用coffescript写的一篇文章,但是写一篇文章会让其他开发者的入门壁垒更高(我们需要打破我们之间的墙壁,而不是创造它们)。 – 2010-08-10 11:12:03

+0

与此相反... >>但写入其中一个会使其他开发者的进入壁垒更高(我们需要打破我们之间的墙壁,而不是创建它们)。 CoffeeScript的意义在于减轻进入门槛,提高代码清晰度,并提供比JS/ECMA更简洁的语法模型。 但无论如何,这是一个选项,你的原始问题只是蓝天。我只是想我会给你一个思考点。 – ocodo 2010-08-10 11:54:43

+0

coffescript目前最大的问题是它的ide支持。 Javascript具有动态语言中最好的重构和类型推断工具之一。这主要是由于缺少method_missing,doesnNotUnderstand,missing_method等价,这使得事情变得更容易。 Coffescript只有语法突出显示(对于仍在开发中的语言,这太早了)。而coffescript虽然不像java或objective-j那样对大多数JS程序员来说是陌生的,但会给学习带来障碍。我为它着想,但它很快就会赶上它的潮流,至少在框架上。 – 2010-08-10 13:11:49

0

什么阻止你现在使用JavaScript和jQuery UI?据我所知,在当代网页浏览器中加载网页需要一个(X)HTML文档,但没有任何东西阻止你将该文档作为存根,并完全用JavaScript构建应用程序。

+0

你说得对,这不是不可能的。问题是:有人用这种方式包装了所有jquery插件/ jQuery UI组件吗?寻找源ukijs的波示例(http://ukijs.org/examples/core-examples/wave/)来更好地理解我的意思。 – 2010-07-25 06:48:06

2

让我们来看看我是否理解这个问题。取而代之的

<script> 
    $(function(){ 
    $('a').button(); 
    }); 
</script> 
<body> 
    <button id="foo">Foo</button> 
    <button id="bar">Bar</button> 
</body> 

你想

<script> 
    $(function(){ 
    $('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button()); 
    $('body').append($('<button id="bar">Bar</button>').button()); 
    }); 
</script> 
<body> 
</body> 

这是否满足您的需求?在一天结束时,无论语法是什么,您仍然需要指定按钮的详细信息(它的位置,文本,单击它时会发生什么)。

+0

其实,我在考虑uki.js的dsl风格,我已经编辑了这个帖子,使其更清晰 – 2010-08-06 21:39:18

1

DHTMLX与ExtJS类似,不幸的是它包含了一些缺点。

+0

有趣。我现在知道DHTMLX。但是对于具有付费功能的工具包,其具有与uki几乎一样多的小部件(这不是很多)。还有TIBCO,我没有提到它,因为它比Sproutcore(这是比GWT更复杂的几个js框架之一)更具意外的复杂性。 – 2010-08-09 04:43:17

0

为“闪亮先生和新建”指出,下面的代码将工作:

$('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button()); 

但是你正在寻找可以使用appendTo()函数accieved风格:

$('<button id="foo"></button>') 
    .button({ 
     label: "Hello world!", 
    }).click(function() { 
     //doSomething 

    }).appendTo('#test'); 

此外上面的代码返回“按钮”对象,其允许将对象分配给供将来重复使用一个变量:

// set up the button 
var a = $('<button/>').button({ 
    label: 'Hello world!' 
}).offset({ 
    top: 80, 
    left: 120 
}).width(180).height(24) 
.click(function() { 
    // dosomething 
}).appendTo('body'); 

// hide then show and rename (if it takes your fancy) 
a.hide(300, function() { 
    a.show(300, function() { 
     a.button("option" , { 
      label: 'Hello to the world again!' 
     }); 
    }); 
}); 
+0

问题是:“为jQuery UI提供小部件和插件”。因此,我不问是否可能。我知道这是可能的。我一遍又一遍地做了。我感兴趣的是,如果其他人已经发布了一个对所有jQuery UI部件和最重要的插件都执行* ALL *的库。如果它不存在,只要我的解决方案成熟,我就会开源。但我认为社区没有必要有2个这样的项目。 – 2010-08-13 17:14:38