在IE8中使用<button>标签和jQuery </button>

时间:2011-11-15 23:06:19

标签: jquery internet-explorer-8

我有一行简单的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上运行。

解释是什么(将这个问题记录在我想念的地方)以及解决方法是什么?

6 个答案:

答案 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')
    ;

http://jsfiddle.net/9xUj5/

答案 1 :(得分:1)

你有很多问题:

  1. 较旧版本的IE在<button>标记中存在一些问题,这可能是您的问题,也可能不是。
  2. 按钮标记上没有类型属性。
  3. 您错过了HTML中的结束</div>
  4. 您应该使用<input type="button">代替。
  5. 请参阅此处: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>