jQuery + .before()+ var =不工作?

时间:2011-07-20 15:24:02

标签: jquery

我不知道发生了什么。这些链接不会显示出来:

var se_buttons = {
    'b': {
        'tag' : 'b'
    },
    'i': {
        'tag' : 'i'
    },
    'url': {
        'tag' : 'url'
    },
    'size': {
        'tag' : 'size'
    },
    'spoiler': {
        'tag' : 'spoiler'
    },
    'align': {
        'tag' : 'align'
    }
};

function se_make_button(button, text) {
    return '<a href="#" class="button se_button se_button_'+button+'">'+text+'</a>';
}

function se_create ( obj, toolbar ) {
    var se_toolbar = '';
    for (var button in se_buttons) {
        se_toolbar = se_toolbar + se_make_button(se_buttons[button].tag, se_buttons[button].tag);
    }
    $(obj).before(se_toolbar);
}

toolbar是一个带属性的简单对象。当单独提醒每个事物时,它们都能正常工作并且所有信息都能正确显示。从控制台执行相同的.before()命令时,它也可以正常工作。但在代码中 - 它没有!我还能做些什么? :/ 我花了大约2个小时试图解决这个问题,但我无法确定发生了什么&gt;&lt;我也尝试了.replaceWith()或其他类似的东西,但它只是不能使用内部代码。通过D:

手动从控制台手动显式运行代码

编辑:奇怪的是,如果我在before()部分内放置一个包含确切变量的警报,那么该字符串就可以了。如果我以任何其他方式操纵$(obj),它就有效。变量和对象的结合并不想摆弄。

2 个答案:

答案 0 :(得分:0)

我按原样使用了您的代码,并设法运行良好。在IE 7,8,9和FF中。 你可以看看这里。 http://jsfiddle.net/87UUD/7/

你的HTML是什么样的?你如何调用se_create方法?

答案 1 :(得分:0)

不知道发生了什么,但它现在才起作用。我认为我明确地将文件调用就准备好了,而不是仅仅将其用作一个蓝色调用。