我几乎可以肯定我能找到答案,但我没有成功.你如何检查在事件调用的那一刻是否有一些对象被选中(聚焦)?我试过了if (document.activeElement == "[object HTMLBodyElement]"),但显然.activeElement已经填满了载荷.我不允许使用jQuery,只能使用mootools.
非常感谢您的帮助!
我最近收到此错误,不知道如何解决...
TypeError: $(...).get(...).trim is not a function
Run Code Online (Sandbox Code Playgroud)
我使用的脚本是这样的:
function vbstatus_change_status(statusID,userID,inputID,editboxID,statusboxID)
{
$(inputID).value=vbstatus_htmlspecialchars_decode($(statusID).get('text').trim(),'ENT_QUOTES');
$(statusboxID).setStyle('display','none');
$(editboxID).setStyle('display','inline');
$(inputID).addEvent('keydown',function(e){
if(e.key=='enter'){
vbstatus_update_status(statusID,userID,inputID,editboxID,statusboxID);
}
});
if($chk($('inlinemodform'))){
$('inlinemodform').addEvent('submit', vbstatus_formkill);
}
}
Run Code Online (Sandbox Code Playgroud)
我在看一个类似于我在这里遇到的问题,但不知道如何处理它!!
知道怎么做吗?
更新:这里是我正在使用的脚本
function vbstatus_htmlspecialchars_decode (string, quote_style) {
var optTemp = 0, i = 0, noquotes= false;
if (typeof quote_style === 'undefined') { quote_style = 2;
}
string = string.toString().replace(/</g, '<').replace(/>/g, '>');
var OPTS = {
'ENT_NOQUOTES': 0, 'ENT_HTML_QUOTE_SINGLE' : 1,
'ENT_HTML_QUOTE_DOUBLE' : 2,
'ENT_COMPAT': 2,
'ENT_QUOTES': 3,
'ENT_IGNORE' : 4 };
if …Run Code Online (Sandbox Code Playgroud) 使用Mootools Element.Dimensions,我可以获得任何元素的计算大小(以像素为单位)。但是,我无法分辨出是否已使用像素值或百分比值确定了元素的大小(在特殊情况下(具有内联样式))。
有这样做的明智方法吗?我能想到的唯一解决方案(这太可怕了,几乎不值得使用该名称)是遍历文档样式表,查找与目标元素匹配的选择器,然后遍历声明的样式以获取目标属性。
背景
我试图用CKEditor实例替换某个类的所有textarea 。理想情况下,宽度为100%的textarea将由样式相似的编辑器实例替换-因此它们将根据窗口调整大小进行缩放-而固定大小的textareas将由固定大小的编辑器替换。
是的,我可以给他们一个不同的类(如果没有很好的解决方案,我会这样做),但是理想情况下,我希望能够放入CKEditor脚本并使所有工作都可以进行,而无需调整HTML。
我遍历在MooTools的数组,但使用速记通过数组进行遍历时,看到其他项目for..in环.当我使用常规for循环时,它工作正常.这是MooTools污染全局命名空间的问题还是我在这里做错了什么?
有一个createTabs()函数迭代数组并为数组中的每个值创建一个选项卡:
function createTabs() {
var myTabs = [["First", "a.png"], ["Second", "b.png"]];
for(var i in myTabs) {
var tab = new Tab(myTabs[i][0], myTabs[i][1]);
console.log(i);
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出console.log(i):
0
1
$family
each
clean
associate
link
contains
extend
getLast
getRandom
include
combine
erase
empty
flatten
hexToRgb
rgbToHex
toJSON
Run Code Online (Sandbox Code Playgroud)
我理解前两个索引,但其余的来自哪里?
编辑:感谢Chetan和k Prime的快速回答.这是有道理的,Array.eachMooTools 的添加是更加清晰的迭代方式!
现在看起来好多了:
myTabs.each(function(item) {
var tab = new Tab(item[0], item[1]);
console.log(item);
});
Run Code Online (Sandbox Code Playgroud) 使用Mootools,我们可以将元素注入另一个元素:
$('childID').inject($('parentID'), 'top');
Run Code Online (Sandbox Code Playgroud)
第二个参数允许我控制位置,可以是"顶部"或"底部",将其注入父对象或"之前"或"之后",将其作为兄弟注入.
我们还可以从字符串中设置元素的HTML:
var foo = "<p>Some text</p>";
$('parentID').set('html', foo);
Run Code Online (Sandbox Code Playgroud)
我的问题是我希望与字符串具有相同的灵活性.例如,我不能使用字符串在元素的顶部,set()因为这会覆盖HTML而不是将其附加到特定位置.同样,我不能在兄弟元素之后或之前追加HTML.
是否有一个函数可以让我以与注入元素相同的方式注入字符串?
我正在从jQuery转移到MooTools(为了好玩..)我有这行代码:
$subMenus = $headMenu.find('li ul.sub_menu:visible');
Run Code Online (Sandbox Code Playgroud)
我怎么能用mootools写这个?
我知道我可以使用getElements但是如何检查可见的ul?(我正在使用这个(:可见)选择器).
我实现了自己的功能:
function findVisibleElements(elementsCollection){
var returnArray = [];
elementsCollection.each(function(el){
if(el.getStyle('display') === 'block'){
returnArray.push(el);
}
});
return returnArray;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是向上滑动所有可见的子菜单,这就是我写的:
// Sliding up the visible sub menus
if( visibleSubMenus.length > 0 ){
visibleSubMenus.each(function(el){
var slider = new Fx.Slide(el, {duration: 2000});
slider.slideOut();
});
}
Run Code Online (Sandbox Code Playgroud)
为什么我的代码不工作?我的功能正在运行,问题在于Fx.Slide.
我用Fx.Slide添加了更多mootools.
<div class="generic_layout_container layout_ride_ridespec">
</div>
Run Code Online (Sandbox Code Playgroud)
如何使用现有类向上面的div添加一个额外的类或一个属性.我想说如下
<div class="generic_layout_container layout_ride_ridespec example_class">
</div>
Run Code Online (Sandbox Code Playgroud)
请原谅id/name解决方案,为上面的元素添加id或名称没什么困难.谢谢
我们正在通过Joomla中的'refer'id将url页面传递给我们的管理员电子邮件...
window.addEvent('domready', function()
{
document.getElementById('refer').value=window.location.href;
});
Run Code Online (Sandbox Code Playgroud)
此代码适用于某些网站,但不适用于其他网站 虽然我愿意接受建议,但我尝试了一个运气不佳的jquery版本.未通过电子邮件返回网址的网站位于http://www.freestylelitemeter.com,而正在工作的网站位于http://www.comparediabetictestingsupplies.com.我们使用'refer'作为隐藏字段并且所有内容都匹配,因此我认为问题在于window.addEvent('domready',function(),除非存在我不知道的冲突.另一个有趣的事情是工作域有更多的脚本文件,在过去发现脚本文件之间的冲突,而较小的站点没有.
我有这个MooTools代码:
new Request.JSON({
method: 'POST',
url: URL, /*URL TO ANOTHER DOMAIN*/
onSuccess: function(r){
callback(r);
}
}).post(data);
Run Code Online (Sandbox Code Playgroud)
并且此代码不发送POST请求(仅限OPTIONS)...请查看下面的代码(它很有用):
var http = null,
params = Object.toQueryString(data);
try {
http = new XMLHttpRequest();
} catch (e) {
try {
http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
http = null;
alert("Your browser does not support AJAX!");
}
}
}
var url = URL;
http.onreadystatechange = function () {
if (http.readyState == 4 && …Run Code Online (Sandbox Code Playgroud) mootools ×10
javascript ×9
cross-domain ×1
css ×1
dom ×1
focus ×1
for-in-loop ×1
joomla ×1
jquery ×1
request ×1
trim ×1