我试图捕捉touchend事件的触摸坐标,但未定义.该touchstart事件的作品不错,但相同的概念失败上touchend.我建立了这个代码mousedown,并mouseup与该工作良好.
我错过了什么?
div.addEvent("touchstart", function (event) {
event.preventDefault(); // to avoid scrolling
span.innerHTML = event.page.x;
});
div.addEvent("touchend", function (event) {
span.innerHTML = event.page.x;
});
Run Code Online (Sandbox Code Playgroud)
我正在一个网站上工作并且第一次使用JQuery.我以前的项目主要使用MooTools,我有一些使用MooTools类结构编写的小部件类.我想将它们移植到JQuery,但它看起来就像MooTools功能在对象类方面没什么相似之处.
我搜索了一下,并没有找到太多.Digg似乎已经推出了自己的产品,但我不确定这是否是我应该使用的东西.有没有更好的办法?人们通常使用JQuery如何面向对象?封装UI小部件(或任何功能类结构)的常用方法是什么?
我将发布一个可能的MooTools小部件类的假例子:
var ZombatWidget = new Class({
Extends: BaseWidget,
widgetPropertyX = 'prop1',
widgetPropertyY = 'prop2',
attach = function(el) {
var f = function() {
//do something widgety
};
el.addEvent('dblclick',f);
el.addClass('widgetized');
}
});
var z = new ZombatWidget();
z.attach($('widgetDiv'));
Run Code Online (Sandbox Code Playgroud)
我得到的是比这更大的东西,但你明白了.我是否需要将其转换prototype为类/继承结构的方法?你会如何使用JQuery编写这种对象类?
如何找出使用谷歌Chrome控制台定义变量的文件和行?
例如,变量Native(来自MooTools)已在全局范围内定义.我想知道使用谷歌Chrome控制台在哪个文件中定义了这个变量.
IE10拒绝启动一些jQuery代码,到目前为止,我在某个地方发现了一个doctype错误被检测到并且在4.01过渡版本之前
在IE的开发者工具中查看我看到的控制台
HTML1524: Invalid DOCTYPE. The shortest valid doctype is "<!DOCTYPE html>".和以下(运行时修改)html:
我相信滥用DOCTYPE和一些jQuery不起作用有一个共同的原因,但没有找到它是什么
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><HTML
xmlns="http://www.w3.org/1999/xhtml" slick-uniqueid="1"><HEAD><META
content="IE=10.000" http-equiv="X-UA-Compatible">
<META http-equiv="X-UA-Compatible" content="IE=edge">
<META http-equiv="Content-Type" content="text/html; charset=windows-1250">
<TITLE>....
Run Code Online (Sandbox Code Playgroud)
虽然IE声称以标准模式运行,但仍有一些东西不起作用(主要用点击事件替换jQuery的链接来显示内容而不是加载整个新页面 - 用于使用手风琴解压缩其他菜单分支,类别标题中的原始链接用href只有jQuery无法动画手风琴的情况下才会回退)
太多其他点击事件或jquery ui函数使链接看起来像按钮无法在IE中工作在其他浏览器中工作
服务器提供的原始html如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<title>...
Run Code Online (Sandbox Code Playgroud)
我被迫使用mootools和jQuery,并且知道htm atributes中的slick-uniqueid来自moo,不知道编辑doctype的人是否相同,但我确定它只发生在IE浏览器中,Chrome和Firefox只是工作好 …
有没有比我的例子更好的方法来计算数字上的小数位数?
var nbr = 37.435.45;
var decimals = (nbr!=Math.floor(nbr))?(nbr.toString()).split('.')[1].length:0;
Run Code Online (Sandbox Code Playgroud)
更好的是,我的意思是更快地执行和/或使用本机JavaScript函数,即.像nbr.getDecimals()这样的东西.
提前致谢!
编辑:
修改series0ne答案后,我能够管理的最快方法是:
var val = 37.435345;
var countDecimals = function(value) {
if (Math.floor(value) !== value)
return value.toString().split(".")[1].length || 0;
return 0;
}
countDecimals(val);
Run Code Online (Sandbox Code Playgroud)
背景:我目前正在使用一个使用MochaUI库的Intranet站点(使用虚拟桌面演示).我正在使用Mootools 1.2.4和MochaUI 0.9.7.在我的"虚拟桌面"实现中打开的窗口通过iframe加载其内容.在css和脚本方面,一些加载的页面非常大,因此当用户关闭窗口时,Window对象充分地被垃圾收集是很重要的.这显然是由图书馆照顾的(使用Firefox时它确实做得很好).
更新 最初发布的问题已从后续编辑/更新变得过长.标题不再准确,所以我也改变了.另外,请参阅下面的答案以获得部分解决方案.
以下是要点:
Chrome就像这样:
奇怪的是,预期的垃圾收集确实发生了
我确定答案是否定的,但是在将元素附加到DOM 之前是否可以确定元素的宽度?
一旦附加,我知道我可以使用offsetWidth和offsetHeight.
谢谢
我正在评估几个Javascript UI工具包,用于构建具有类似桌面感觉的Web应用程序,主要是因为对话框和窗口管理.
我看了几个选项 - 这是我目前的评估:
你对这些有什么看法?我的评估是否正确?
有没有办法使用javascript或mootools更改html选择列表的选项数组?
我需要用新的选项替换整个选项集.在我的ajax响应中,我收到一个填充了新HTML选项的数组,因此我尝试清空旧列表并添加新值,如下所示
$('element').options.length=0;
for (i=0; i<newSet.length; i++)
{
$('element').options[i]=newSet[i];
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在循环内的行上给了我一个未被捕获的异常.
未捕获异常:[例外..."意外错误"nsresult:"0x8000ffff(NS_ERROR_UNEXPECTED)"位置:"JS框架
只是添加对我有用的东西:
/* get new options from json*/
var new_options = response.options;
/* Remove all options from the select list */
$('idresource').empty();
/* Insert the new ones from the array above */
for (var key in new_options)
{
var opt = document.createElement('option');
opt.text = new_options[key];
opt.value = key;
$('idresource').add(opt, null);
}
Run Code Online (Sandbox Code Playgroud) 我想在Google Maps API(v3)InfoWindow中添加一个带有输入字段和提交按钮的表单.
提交时,我想调用一个函数,使用输入到输入字段中的地址启动指向服务.
这是我的代码(我目前只测试方向事件是否被触发.我已经编写完整的getDirections()事件并且可以确认它有效并在正确触发时返回指示):
我尝试使用MooTools添加一个事件监听器,如下所示:
var infoWindowContent = "<b>Get Directions From...</b><br />"
+ "<form id='map-form'>"
+ "Address/Postcode: <input id='map-from-address' type='text' />"
+ "<input type='submit' id='map-go' value='Go' />"
+ "</form>";
var infoWindow = new google.maps.InfoWindow({
content: infoWindowContent
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
dbug.log($("map-form"));
$("map-form").addEvent("submit", getDirections);
});
function getDirections(event)
{
dbug.log("getDirections");
event.stop();
}
Run Code Online (Sandbox Code Playgroud)
当我在我的网站的其他地方使用MooTools时,我将所有代码放入其中 window.addEvent('load', function(){...});
请注意dbug.log($("map-form"));正确输出表单元素的控制台跟踪,但事件未触发.
我在DOM中将相同的事件添加到另一个表单(具有不同的ID)并且它工作正常.
那么,如果MooTools可以找到该元素并据说添加事件监听器,那么阻止事件触发的是什么?这是范围问题吗?
javascript mootools infowindow google-maps-api-3 mootools-events