这是交易,我们有一个我们想要压缩的大型JS库,但如果它找到一个"eval"语句,YUI压缩器不能完全压缩代码,因为担心它会破坏别的东西.这很好,但是我们确切地知道什么是eval'd,所以我们不希望它变得保守,因为在MooTools JSON.decode中有一个eval语句
所以基本上问题是,是否有任何替代(可能是创造性的)方法来编写一个返回eval函数的表达式?我试了几个,但没有骰子:
window['eval'](stuff);
window['e'+'val'](stuff);
// stuff runs in the global scope, we need local scope
this['eval'](stuff);
// this.eval is not a function
(new Function( "with(this) { return " + '(' + stuff + ')' + "}"))()
// global scope again
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
非常感谢,如果有人能帮我弄清楚为什么我在MooTools中使用事件委托(从Element.Delegation类)中无法以编程方式触发事件.
父母在某些子元素上<div>有一个change监听器<input>.当用户操作触发更改事件时,父div上的处理程序会被触发,但是当我以编程方式触发fireEvent任何子输入时,没有任何反应.基本设置是:
<div id="listener">
<input type="text" id="color" class="color" />
????????????????????????????????????????????????????????????????</div>???????????
Run Code Online (Sandbox Code Playgroud)
$("listener").addEvent("change:relay(.color)", function() {
alert("changed!!");
});
$("color").fireEvent("change"); // nothing happens
Run Code Online (Sandbox Code Playgroud)
父div上的事件处理程序不会被调用.任何帮助表示赞赏.干杯!
相关问题:fireEvent在DOM树中根据泡沫触发事件吗?我当前的黑客是本地发送有效的事件(但仍然是黑客) - http://jsfiddle.net/SZZ3Z/1/
var event = document.createEvent("HTMLEvents")
event.initEvent("change", true);
document.getElementById("color").dispatchEvent(event); // instead of fireEvent
Run Code Online (Sandbox Code Playgroud) 我在mootools中使用事件委托.我想知道点击的行号.我的解决方案显示在这个jsfiddle中:有没有比我目前做的更好的方法?
我的方法是比较元素,直到我找到匹配.我可以使用IndexOf方法吗?
(以下是来自jsfiddle的数据)
HTML:
<div id="Record_List">
<div class="Row">
<input type="submit" name="Row" value="Edit"/>
</div>
<div class="Row">
<input type="submit" name="Row" value="Edit"/>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
window.addEvent(
'domready',
function()
{
$('Record_List').addEvent(
'click:relay(input)',
function(evt, target)
{
evt.stop();
var rowElem = target.getParent();
var rowNumber = -1;
$('Record_List').getChildren('div.Row').each(
function (el, num)
{
if (rowElem === el)
{
rowNumber = num;
}
});
// Find the position of the row and display it here:
alert('Row number: ' + rowNumber);
});
});
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能在keypress活动中获得最终结果?目前,我正在使用keyup它,因为它是在用户在texteara中完成文本编辑后激活的,但我编写了一个使用Mootools库执行类似操作的方法:
input.addEvent("keypress", function (input) {
var previous_result = this.value;
var end_result = this.value + input.key;
});
Run Code Online (Sandbox Code Playgroud)
但是,这种方法在处理特殊键(如退格键)时非常糟糕,或者如果用户选择使用CTRL+ a&& Backspace,则输入元素的值不会是"空字符串".
我很好奇,因为我观察到谷歌的搜索引擎发送XMLHttpRequest 并在keyup事件触发前改变页面.此外,他们使用的输入设法克服了删除整个文本同时仍然享受奢侈品的问题keypress.
谢谢!
我什么时候想使用Slick?何时我想使用Sizzle?每个作为独立CSS选择器引擎的优点和缺点是什么?Slick与JQuery一起使用有多容易?Sizzle可以和Mootools一起使用吗?
我正在尝试编写一个不显眼的脚本,我不想添加任何不需要的HTML,除非启用了javascript.
使用MooTools 1.2.4,是否可以包含一个元素数组,例如:tags?
期望的效果:
之前:
<p>Something</p>
<p>Something1</p>
<p>Something2</p>
<p>Something3</p>
Run Code Online (Sandbox Code Playgroud)
一厢情愿的javascript代码:
$$('p').wrapWith(new Element('div', {id: 'master'}));
Run Code Online (Sandbox Code Playgroud)
后:
<div id="master">
<p>Something</p>
<p>Something1</p>
<p>Something2</p>
<p>Something3</p>
</div>
Run Code Online (Sandbox Code Playgroud) 每当用户向下滚动鼠标滚轮时,我想开发一个向左移动的网页.通常所有网站都是垂直滚动.但是这个应该水平滚动.
示例代码:
<body>
<div style="width:10000px; height:400px; top:0; left:0;">
//here goes the content.
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我的目标是使用jQuery或任何其他Javascript工具在鼠标滚轮滚动上水平滚动DIV.
我正在使用Twitter Bootstrap为Joomla 2.5.x制作模板.我还想为该模板使用Bootstrap Carousel插件.
当Carousel与Joomla的Mootools实现一起使用时,我遇到了问题.Carousel元素的样式正在以负边距变化,使其对用户不可见.为了向您展示发生了什么,我为您准备了一个jsfiddle http://jsfiddle.net/U2pHH/11/.
由于Carousels更改样式属性,Carousel正在使每个第二个图像对用户不可见,但用户应该看到每个幻灯片.
我已经看过Carousel插件和Mootools JS文件的源代码,但遗憾的是无法解决问题的原因.我想也许是jQuery和Mootools之间的函数/类的一些命名问题,但在那里找不到任何问题.
我希望你能在这里帮助我.
编辑:我发现它与fx.Slide类的mootools-more.js有关,删除源代码中的类解决了问题.但这仍然没有真正的解决方案,任何帮助仍然非常感激.
我有一个包含未知数量的其他对象的对象.每个(子)对象可以包含布尔值作为字符串,我想将它们更改为实际的布尔值.这是一个示例对象:
var myObj = {
my1stLevelKey1: "true",
my1stLevelKey2: "a normal string",
my1stLevelKey3: {
my2ndLevelKey1: {
my3rdLevelKey1: {
my4thLevelKey1: "true",
my4thLevelKey2: "false"
}
},
my2ndLevelKey2: {
my3rdLevelKey2: "FALSE"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我最终想要的是:
var myObj = {
my1stLevelKey1: true,
my1stLevelKey2: "a normal string",
my1stLevelKey3: {
my2ndLevelKey1: {
my3rdLevelKey1: {
my4thLevelKey1: true,
my4thLevelKey2: false
}
},
my2ndLevelKey2: {
my3rdLevelKey2: false
}
}
}
Run Code Online (Sandbox Code Playgroud)
重要的是数字子对象/级别是未知的.如何使用经典JavaScript或Mootools有效地做到这一点?
javascript recursion mootools functional-programming data-structures