Ошибка JavaScript: неверный аргумент в IE на анонимной функции - PullRequest
0 голосов
/ 30 июля 2011

Я получаю странную ошибку в Internet Explorer (я пробовал в IE 8) Все отлично с другим браузером.

Недопустимый аргумент для функции, аналогичной этой (я не могу опубликоватьоригинальная, как она есть из нераспространяемой библиотеки, которая была изначально запутана и сжата):

function createADiv() {
    var f = document.createElement('div');
    f.set = [function (z) { // error on this line
        f.style.width = z
    }, function (z) {
        f.style.height = z
    }];
    return f;
 }

Проблема заключается в области действия f, но я не понимаю, почему использование f внутри анонимных функций не должноне работает.

Есть какие-нибудь идеи о том, как обойти эту ошибку Internet Explorer?

Я проверил другую "ошибку недопустимого аргумента", но, похоже, это другой случай.

Спасибо заранее

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Не уверен, почему, попробуйте переписать это как это

function createADiv() {
    var f = document.createElement('div');
    f.set = [function a (z) { // error on this line
        f.style.width = z
    }, function b (z) {
        f.style.height = z
    }];
    return f;
 }
0 голосов
/ 30 июля 2011

Я думаю, это то, что вы пытаетесь сделать:

function createADiv() {
    var f = document.createElement('div');
    f.set = {
        width: function (z) { // error on this line
            f.style.width = z
        }, 
        height: function (z) {
            f.style.height = z
        }
    };
    return f;
 }

теперь, когда вы создаете div, вы можете сделать это:

var newDiv = createADiv();
newDiv.set.height("200px");

но, честно говоря, это бесполезно, потому что javascript уже делает это:

newDiv.style.height = "200px";

нет большой разницы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...