标签: mootools

是否有一个jQuery等效的MooTools的Element()构造函数?

我将为我的网站启动一个javascript报告引擎,并开始使用MooTools进行一些原型设计.我真的很喜欢能做这样的事情:

function showLeagues(leagues) {
    var leagueList = $("leagues");
    leagueList.empty();
    for(var i = 0; i<leagues.length; ++i) {
        var listItem = getLeagueListElement(leagues[i]);
        leagueList.adopt(listItem);
    }
}

function getLeagueListElement(league) {
    var listItem = new Element('li');
    var newElement = new Element('a', {
        'html': league.name,
        'href': '?league='+league.key,
        'events': {
                'click': function() { showLeague(league); return false; }
        }
    });
    listItem.adopt(newElement);
    return listItem;
}
Run Code Online (Sandbox Code Playgroud)

从我所看到的,jQuery的"采用"类型方法只采用html字符串或DOM元素.是否有任何jQuery等同于MooTools的元素


编辑:我在这里寻找的重要事情是我的点击事件对链接的程序化附件.

javascript jquery mootools

3
推荐指数
1
解决办法
9166
查看次数

MooTools:从元素中删除CSS类

如何从元素中删除类?我在文档中看到有一个$().swapClass(),但我没有看到$().removeClass().

javascript css mootools class

3
推荐指数
1
解决办法
5463
查看次数

Javascript/JQuery中$ H的含义是什么?

这个jsfiddle.net示例包括$H:

new Request.JSON({
    url: '/echo/json/',
    data: {
        json: JSON.encode({
            text: 'some text',
            array: [1, 2, 'three'],
            object: {
                par1: 'another text',
                par2: [3, 2, 'one'],
                par3: {}
            }
        }),
        delay: 3
    },
    onSuccess: function(response) {
        show_response(response, $('post'));
    }
}).send();

show_response = function(obj, result) {
    $H(obj).each(function(v, k) {
        new Element('li', {
            text: k + ': ' + v
        }).inject(result);
    });
    result.highlight();
};
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到$ H的含义/功能.有人可以详细说明吗?

javascript mootools jsfiddle

3
推荐指数
1
解决办法
2855
查看次数

JavaScript有条件地覆盖类方法

我有一个我定义的类,我在我的应用程序中使用.我有一个页面,我想更改覆盖该类的所有实例上的一些方法.这是一些代码来说明.

MyClass的-的script.js

var MyClass = new Class({
    foo: function() {
        return 1;
    },

    bar: function() {
        return this.foo() + 9;
    },
});
Run Code Online (Sandbox Code Playgroud)

变化MyClass的-的script.js

MyClass.implement({
    foo: function() {
        return this.parent() * -1;
    },
});
Run Code Online (Sandbox Code Playgroud)

如果我在页面上包含myclass-script.js,我应该看到:

var test = new MyClass();
test.bar() === 10; //true
Run Code Online (Sandbox Code Playgroud)

如果我包含myclass-script.js然后更改-myclass-script.js,我应该看到:

var test = new MyClass();
test.bar() === 8; //true
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是MyClass.implement适用于MyClass的所有实例,但它没有"覆盖"该方法,它取代了它.所以this.parent()调用失败,因为该方法没有父级.如果我做MyClass.extend它不适合我想要的,我没有看到MyClass的实例调用重写方法.

javascript mootools

3
推荐指数
1
解决办法
2339
查看次数

防止浏览器跳转到锚点

如何防止浏览器跳转到锚点链接?

我知道我可以在onclick事件上向用户返回“ false”,或者如果有人在使用mootools,则可以执行以下操作

$('button').addEvent('click', function(e) {
e.stop()
//do blabla 
});
Run Code Online (Sandbox Code Playgroud)

这将阻止浏览器跳转到锚点,但是我想将锚点保留在url中,以便一个人可以共享链接。我实际上是使用锚来显示动态信息。

有任何想法吗?

javascript anchor mootools

3
推荐指数
1
解决办法
5049
查看次数

mootools和jQuery冲突

我在一个加载Mootools和JQuery的页面中有一个简单的表单.JQuery没有冲突模式,看起来应该没有问题.

有一个名为"名字"的表单元素 -

<input class="required" id="sendname" name="sendname" value="">
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Mootools附加一个click事件,以便在单击名称框时更新其他内容:

$('sendname').addEvent('click', function(e){
    // do stuff.
});
Run Code Online (Sandbox Code Playgroud)

问题是click事件永远不会被添加.


加载时出现此错误:

Uncaught TypeError: Cannot call method 'addEvent' of null
Run Code Online (Sandbox Code Playgroud)

当我尝试与js控制台中的元素进行交互时,我收到以下错误:

> $('sendname').setProperty('value', 'test');
TypeError: Object sendname has no method 'setProperty'</strike>
Run Code Online (Sandbox Code Playgroud)

编辑:通过加载更新的Mootools修复了之前的问题.但是,单击事件仍然无法正常运行,但它不会引发错误或警告.

这个代码在我使用过的几乎任何情况下都能正常工作.我假设jQuery存在一些冲突的问题,但$符号工作的事实似乎证实了noConflict模式是可操作的.有任何想法吗?

javascript jquery mootools

3
推荐指数
1
解决办法
6183
查看次数

原型"论据"

介绍

我们都知道argumentsJavaScript函数的这些愚蠢对象.

但为什么反对呢?不是阵列吗?

不,这不是,这就是为什么许多人称之为JavaScripts概念的失败:

(function () {
    return arguments.slice(); // TypeError: arguments.slice is not a function
}());
Run Code Online (Sandbox Code Playgroud)

意向

好的,这只是我要问的真实内容的介绍,但在问你需要更多信息之前:

虽然在最后几天阅读不同的代码,但在很多地方看到以下代码行时我感到非常伤心.

args = Array.prototype.slice(arguments);
Run Code Online (Sandbox Code Playgroud)

那么,它做了什么,只是简单地将arguments对象"转换" 成一个包含所有原型和东西的数组.


我的解决方案

我想到的是以下内容:虽然JavaScript完全是关于原型设计的,但为什么我们不扩展arguments对象prototype本身呢?我检查了一些网站的现有脚本,但没有发现我打算找到的东西,最后我自己写了:

(function () {
    var i, methods;

    arguments.constructor.prototype = Array.prototype;
    methods = ['concat', 'join', 'pop', 'push', 'reverse', 'shift', 'slice', 'sort', 'splice', 'toString', 'unshift'];

    for (i = 0; i < methods.length; i += 1) {
        if (arguments.constructor.prototype.hasOwnProperty(methods[i]) === false) {
            arguments.constructor.prototype[methods[i]] = Array.prototype[methods[i]];
        }
    }
}());
Run Code Online (Sandbox Code Playgroud)

压缩后,它只需要260个字节,并通过使用扩展 …

javascript jquery mootools prototypejs

3
推荐指数
1
解决办法
2164
查看次数

为什么手动触发事件时回调中事件 e 未定义?

我正在使用Mootools并向链接添加点击事件。我已经向事件添加了一个函数:

$('addCallRoute').addEvent('click', addCallRoute); // Add button
Run Code Online (Sandbox Code Playgroud)

该函数包含以下内容:

function addCallRoute(e) {
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

触发事件的函数(无需实际点击)

$('addCallRoute').fireEvent('click');
Run Code Online (Sandbox Code Playgroud)

问题: 当我实际单击链接时,e已定义。但是当我以编程方式触发该事件时,eundefined. 为什么?

javascript mootools mootools-events

3
推荐指数
1
解决办法
809
查看次数

为什么我需要使用Mootools Element方法扩展document.body $(document.body)?

因此,在尝试让我的应用程序在最新的IE上工作之后,事实证明IE不喜欢以下代码:

document.body.getElement('.className');
Run Code Online (Sandbox Code Playgroud)

Firefox和Chrome的反应还不错,但document.body在IE上没有Mootools Element方法.

细算的文件,一些包裹的例子document.body$()将其暴露在MooTools的方法.

只是想知道它在FireFox/Chrome中工作正常的原因,但不能在IE中自动运行?

javascript internet-explorer mootools

3
推荐指数
1
解决办法
309
查看次数

如何使用Mootools更改我的background-image css属性?

我是新手.如何使用Mootools更改我的background-image css属性?

css mootools background-image

2
推荐指数
1
解决办法
8631
查看次数