我并不是想把它作为一个偏好问题,我真的很想知道人们使用jQuery和Rails或jRails进行开发的经历是什么.到目前为止,包括我在内的大多数rails用户都在使用Prototype.但是,我混合使用了很多jQuery插件,因为它们非常易于使用和扩展.
我现在正在考虑从Prototype转移到jQuery以获得新的Rails项目.但是,我喜欢Prototype的力量.Protoype几乎是一种新的语言,它位于JS的顶层,而我发现jQuery就像一个很棒的脚本语言,有很多语法糖和链接.
无论如何,你的想法将不胜感激.
我想创建一个这样的链接:
<a href="http://example.com">text</a>
Run Code Online (Sandbox Code Playgroud)
并替换行为,以便链接在单击时使用Ajax下载内容.
对我来说重要的是不要替换href属性(因此复制链接仍然有效).
一种解决方案是:
$('link').onclick = function() { return false; };
Run Code Online (Sandbox Code Playgroud)
但我想使用.observe方法.但这不起作用:
$('link').observe('click', function() { return false; });
Run Code Online (Sandbox Code Playgroud)
(这很合乎逻辑).
有关如何实现这一目标的任何想法?
谢谢.
<select name="DropList" id="serverDropList">
<option selected="selected" value="2">server1:3000</option>
<option value="5">server3:3000</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我知道在原型中我可以获得价值,$('serverDropList').value但我怎么能得到"server1:3000"?
我正在使用jQuery hoverIntent.js脚本来创建一个巨大的下拉菜单系统,该系统的灵感来自Son Tonaka的大型下拉/ CSS和jQuery sohtanaka.com/web-design/mega-drop-downs-w-css-jquery.我的页面包含一个由第三方供应商插入的prototype.js脚本(这是一个加载属性搜索和潜在客户管理内容的房地产网站).它在标签之前加载到最后.我的菜单脚本和jQuery调用加载在标记的顶部.下面我已经包含了2个链接.第一个链接我已经注释掉对prototype.js的调用,菜单工作正常.第二个链接调用prototype.js,下拉列表不起作用.
工作下拉:http://www.myreoforeclosures.com/_menutestfromcode.html(prototype.js已注释掉)
不工作下拉:http://www.myreoforeclosures.com/_menutestfromcode2.html(与prototype.js一起工作)
我已经尝试了jQuery网站上建议的jQuery noConflict()解决方案的许多变体,但对于我的生活,我无法解决冲突.我已经将上述链接简化为CSS和HTML的基础知识来测试下拉列表.
请注意我正在使用Web 2.0/CSS/jQuery攀登陡峭的学习曲线,因为这是我第一次尝试使用这些工具设计网站(以前基于表格的网站).
任何有助于让jQuery和原型协同工作的帮助将不胜感激.我只能控制jQuery脚本,因此必须对jQuery进行任何解析.我对prototype.js没有任何控制权.
问题:
异步加载js文件,然后在执行加载文件的回调之前检查是否加载了dom.
编辑:我们不使用jQuery; 我们使用Prototype.
编辑:为代码示例添加了更多注释.
大家好,
我正在尝试异步加载我的所有js文件,以防止它们阻塞页面的其余部分.但是当脚本加载并调用回调时,我需要知道DOM是否已经加载,所以我知道如何构造回调.见下文:
//load asynchronously
(function(){
var e = document.createElement('script');
e.type = "text/javascript";
e.async = true;
e.src = srcstr;
// a little magic to make the callback happen
if(navigator.userAgent.indexOf("Opera")){
e.text = "initPage();";
}else if(navigator.userAgent.indexOf("MSIE")){
e.onreadystatechange = initPage;
}else{
e.innerHTML = "initPage();";
}
// attach the file to the document
document.getElementsByTagName('head')[0].appendChild(e);
})();
initPageHelper = function(){
//requires DOM be loaded
}
initPage = function(){
if(domLoaded){ // if dom is already loaded, just call the function
initPageHelper(); …Run Code Online (Sandbox Code Playgroud) 我得到了以下代码,我试图让它匹配一个类而不是一个id:
HTML:
<div id='testdiv'>
<div class="lol">
[First Title|<a class="external" href="http://test.com">http://test.com</a>]
Another line
[Second Title|<a class="external" href="http://test.com">http://test.com</a>]
More text
[Third Title|<a class="external" href="http://test.com">http://test.com</a>]
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var textContainer = document.getElementById("testdiv");
var linkText = textContainer.innerHTML;
var pattern = /\[([^|]+)\|([^>]+.?)[^<]*(<\/a>)\]/g;
var result = linkText.replace(pattern, "$2$1$3");
textContainer.innerHTML = result;
Run Code Online (Sandbox Code Playgroud)
完整示例:http://jsfiddle.net/JFC72/17/
如何让它匹配"myclass"而不是?谢谢!
我正在尝试Firefox,IE 9,Chrome和Opera下面的代码,但是onInitFs(fs)函数没有被调用.如果我在window.requestFileSystem中添加'()'到onInitFs(window.PERSISTENT,1024*1024,onInitFs,errorHandler)该函数被调用但fs为null?有谁知道如何解决这个问题?我试试Windows 7.我非常感谢你的帮助.
<!DOCTYPE HTML>
`<html>
<head>
<script>
function errorHandler(e){
alert("errorrrr");
}
function onInitFs(fs){
alert("onInitFs");
}
function readClick(){
if (window.webkitRequestFileSystem) {
window.webkitRequestFileSystem(window.PERSISTENT, 1024*1024,onInitFs,errorHandler);
}
else {
window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);
}
alert("read finishsssss");
}
</script>
</head>
<body>
<input type="button" value="Read dir" onclick="readClick()">
<ul id="filelist"></ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序来处理被拖动到应用程序的歌曲.当我使用它file.size来获取文件的大小时,需要大约1500毫秒(平均)来获得此值.有没有更快的方法?我理解为什么需要时间(和内存),但由于我是处理HTML5中的文件的新手,可能有一些我不知道哪些可以使这个过程更快.
文件系统API也是如此.如果我通过它调用文件并呼叫file.size,则需要相似的时间.
PS我通过添加console.time()我的代码得出了这个结论.
这是代码(大量剥离)
fileSystem.root.getFile(id, {}, function(fileEntry) {
fileEntry.file(function(audioTemp) {
console.time(1);
console.log(audioTemp.size);
console.timeEnd(1)
});
});
Run Code Online (Sandbox Code Playgroud)
这是文件系统API示例.这(显然)需要命名的文件id才能使用它.下面是D&D文件输入代码
function onChangeAddSongsInput() {
var files = document.getElementById('addSongsInput').files;
for(var i=0; i<files.length; i++) {
console.time(1);
console.log(files[i].size);
console.timeEnd(1)
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
我是AMD的核心两个双核,2.7 GHz,2 GB的ram,win7 x64.我相信的规格实际上还算不错.因此,如果某些东西在我的机器上需要足够长的时间,我将把它视为禁忌.
这是我的应用程序中的主要错误修复的阻止程序.我真的很想包括这个很长一段时间的修复程序.我不能设置赏金(但)也许在设置赏金之前有最短的时间.
编辑
我做了一些测试,事实证明,它需要很长时间,因为chrome 计算 的大小而不是从一些元数据中读取它.这是测试结果.
文件越大,所需的时间越长,如果第二次调用则使用一些缓存并且不加载文件.所以现在..我怎么能减少这个时间?大小是我的应用程序中的一个重要信息,但可能不足以使用户的上传速度降低大约1.5秒的每个文件!我正计划导入库,当添加100首左右的歌曲时,这将有助于减少这段时间.这一次将成为应用响应时间的重大突破.
我正在创建一个Node.js webscraper/proxy,但是我在解析源代码的脚本部分中找到的相对Urls时遇到了问题,我认为REGEX可以解决这个问题.虽然我不知道如何实现这一目标.
无论如何我可以解决这个问题吗?
此外,我对这样做更容易,因为我对其他代理如何解析网站感到困惑.我认为大多数只是美化的网站刮刀,可以读取网站的来源中继所有链接/表格回到代理.
是否可以覆盖Ctrl+ D?我想,例如console.log或某些东西,而不是添加到书签的链接.
bookmarks google-chrome keyboard-shortcuts google-chrome-extension
javascript ×8
prototypejs ×6
jquery ×2
asynchronous ×1
bookmarks ×1
callback ×1
conflict ×1
dom ×1
file-upload ×1
hoverintent ×1
html5 ×1
node.js ×1
proxy ×1
regex ×1
web-scraping ×1