javascript - Jquery UI CheckBox Button - 按钮和点击兼容性问题 - ie8

标签 javascript jquery html jquery-ui internet-explorer-8

情况:

我有以下 jquery:

addButton();

function addButton(){
    var div = $("#mydiv");
    div.append(addHtml());
    addEvents(div);
}

function addEvents(div){
div.find(".toggleButton").button();
div.find(".toggleButton").click(function(e) {
    alert("test");
});
}

function addHtml(div){
return "<input class=\"toggleButton\" type=\"checkbox\" id=\"id1\" name=\"name1\" /><label for=\"id1\">Yes</label>";
}

复选框变为按钮,但不会在单击时发出警报信号。为什么按钮部分有效而点击部分无效???

更新: 这在 firefox 中有效,但在 ie-8 中无效。不幸的是,我需要它在 ie-8 中工作。

更新 2: 如果我注释掉 .button 调用,则点击部分在 ie-8 中有效。如何让两者协同工作?

更新 3: 在 firefox 中生成的实际 html:

<input class="toggleButton ui-helper-hidden-accessible" id="id1" name="name1" type="checkbox"><label aria-disabled="false" role="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" aria-pressed="false" for="id1"><span class="ui-button-text">Yes</span></label>

在 IE-8 中生成的实际 html:

<INPUT id=id1 class="toggleButton ui-helper-hidden-accessible" type=checkbox name=name1 jQuery1294922695438="218"><LABEL aria-disabled=false class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role=button aria-pressed=false for=id1 jQuery1294922695438="223"><SPAN class=ui-button-text jQuery1294922695438="225">Yes</SPAN></LABEL>

最佳答案

问题在于 IE-8 对激活点击的决定。在 IE-8 中,标签驱动点击,因此您必须将点击事件附加到标签!

此外,您不能在输入和标签上使用相同的类;为了使其在 ie-8 和 firefox 中都能正常工作,您必须这样做:

function addEvents(div){
div.find(".toggleButtonInput").button();
div.find(".toggleButtonLabel").click(function(e) {
    alert("test");
});
}

function addHtml(div){
return "<input class=\"toggleButtonInput\" type=\"checkbox\" id=\"id1\" name=\"name1\" /><label class=\"toggleButtonLabel\" for=\"id1\">Yes</label>";
}

然后它就正常工作了。

关于javascript - Jquery UI CheckBox Button - 按钮和点击兼容性问题 - ie8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4679819/

相关文章:

javascript - html中如何让body和div元素之间没有空格

html - Div 父 div 不包含子 div

javascript - 使用历史记录在 javascript 中查找上次访问的 URL

javascript - 在 Chrome 中打印弹出窗口

javascript - 如何在后退按钮上发出请求 - chrome

javascript - 将转义的 outerHTML 转换为变量

javascript - 正则表达式通过 html 标签和普通字符串中的空格分隔字符串

javascript - 如何使用 jquery 将点击处理程序分配给每个子项?

javascript - 从 div 内的 p 标签中选择一个值

javascript - 如何在短时间内用IE删除很大一部分的DOM?