我试图为每个jQuery添加一个按钮。它在其他浏览器中运行得很好,IE9失败了。
代码:
function AddUnsubscribeButton()
{
var btn = $('<button/>',
{
type: 'button',
text: 'Unsubscribe',
id: 'btnUnsubscribe',
click: function () { AddCurrentUserToSubscriptionList("Unsubscribe");return false; }
});
var divBtns = $(".divButtons").parent();
divBtns.find('#btnSubscribe').remove();
if(divBtns.first().children().length == 2)
{
divBtns.first().append(btn);
}
}
在IE9页面源代码中显示:
< button id="btnUnsubscribe" type="button" jQuery17207435150102662105="16" >
我错过了什么?
同样在页面中,它不会呈现为按钮,只显示按钮文本 - Unsubscribe
但我需要将它显示为按钮,就像在其他浏览器中一样。
似乎IE9没有呈现结束标记。
答案 0 :(得分:1)
您实际上是将元素的属性设置错误。按钮元素没有按钮类型,因此您应该使用输入元素,该元素具有type=button
或删除类型。
function AddUnsubscribeButton() {
var btn = $('<button />', {text: 'Unsubscribe', id: 'btnUnsubscribe'});
btn.on('click', function() {
AddCurrentUserToSubscriptionList("Unsubscribe");
return false;
});
var divBtns = $(".divButtons").parent();
divBtns.find('#btnSubscribe').remove();
if(divBtns.first().children().length == 2) {
divBtns.first().append(btn);
}
}
似乎直接在元素的属性中添加click函数会在IE中添加一些奇怪的东西,正确的方法是使用click事件处理程序,如上所述。
答案 1 :(得分:0)
adeneo的解决方案适用于jsFiddle,但不适用于我的sharepoint项目。出于某种原因,IE9拒绝关闭按钮标签,而其他浏览器工作正常。
这是做了什么工作:
function AddUnsubscribeButton() {
var button = document.createElement('button');
button.innerHTML = 'Unsubscribe';
button.onclick = function(){
AddCurrentUserToSubscriptionList("Unsubscribe");
return false;
};
var divBtns = $(".divButtons").parent();
divBtns.find('#btnSubscribe').remove();
if(divBtns.first().children().length == 2) {
divBtns.first().append(button);
}
}
希望有一天这会有所帮助。