我有一行简单的Javascript代码
$('<button>').attr({ 'type': 'button' }).css({ 'cursor': 'pointer' }).text('Button').click(function () { alert('clicked'); }).appendTo($('#btn'));
html更简单
<div id='btn'>Click this button</>
运行此代码FF时一切正常,如jsfiddle http://jsfiddle.net/kevinle/jJbNt/6/所示。但它无法在IE8上运行。
解释是什么(将这个问题记录在我想念的地方)以及解决方法是什么?
答案 0 :(得分:3)
也许正确关闭你的<div>
元素?
<div id='btn'>Click this button</div>
好的,对它进行了更彻底的测试,发现对.attr()
的调用对IE的Javascript引擎的影响很小。从jQuery链中删除后,它在IE8中工作。
如果您考虑一下,既然您要实例化<button>
,则无需将其type
设置为"button"
。
$('<button>')
//.attr({ 'type': 'button' })
.css({ 'cursor': 'pointer' })
.text('Button')
.click(function () {
alert('clicked');
})
.appendTo('#btn')
;
答案 1 :(得分:1)
你有很多问题:
<button>
标记中存在一些问题,这可能是您的问题,也可能不是。</div>
。<input type="button">
代替。请参阅此处:http://jsfiddle.net/jfriend00/e8eGW/了解工作版本。
<div id='btn'>Click this button</div>
$('<input type="button" value="Button">').css({ 'cursor': 'pointer' }).click(function () { alert('clicked'); }).appendTo($('#btn'));
答案 2 :(得分:0)
尝试http://jsfiddle.net/jJbNt/16/ - 不应该真的有所作为,尝试一下。
答案 3 :(得分:0)
只需取出.attr(...)
即可正常使用(example)。
button
似乎没有在IE中从IE浏览器中看到的类型属性;你想的可能是input
?
答案 4 :(得分:0)
似乎IE8及更早版本在解析'type'属性时遇到问题。删除或更新jQuery到1.7修复解决了这个问题。
答案 5 :(得分:0)
这适用于ie8
JQUERY:
$('button.buttonLink').click(function(){
window.location = $(this).parent('a').attr('href');
});
HTML:
<a href="logout.php"><button class="buttonLink">LOGOUT</button></a>