2011-07-20 17 views
0

我不知道发生了什么事。该链接就不会显示出来:jQuery + .before()+ var =不工作?

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个小时试图解决这个问题,但我无法弄清楚发生了什么事> <我也试过.replaceWith()或其他类似的东西,但它只是在内部代码中不起作用。明确从控制台作品虽然d手动运行代码:


编辑:奇怪的是,如果我把一个警报,确切的变量before()部分内,该字符串是好的。如果我以任何其他方式操作$(obj),它就会起作用。变量和对象的结合不想小提琴。

+0

请制作一个测试用具。我们看不到'se_buttons',或者你调用'se_create'。 –

+0

新增se_buttons - 这是一个简单的对象,我知道它出现我建立它无用,但我打算添加更多的属性,这是一个占位符 – casraf

回答

0

不知道发生了什么,但它现在就起作用了。我想我明确地要求准备好文档,而不是仅仅将它用作蓝色电话。

0

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

你的html看起来像什么?你如何调用se_create方法?

+0

这应该是一个评论。 –