我做了一个div可编辑,想要选择部分文本,并希望在点击不同的字体系列按钮时更改其字体系列。 它会改变,但也会保留早先的选择
$('#message_div').on('selectstart', function () {
$(document).one('mouseup', function() {
st = this.getSelection();
var range = st.getRangeAt(0);
var newNode = document.createElement("span");
newNode.setAttribute("class", "selectedText");
range.surroundContents(newNode);
$(".selectedText").focus();
});
});
</script>
答案 0 :(得分:0)
我认为您不应该听“选择”事件,而是听取按钮抛出的“点击”事件。
代码应该是这样的:
$('.btn-font-change').click(function() {
// Browsers compat
if (window.getSelection) {
var range = window.getSelection().getRangeAt(0);
} else if (document.selection && document.selection.type != "Control") {
var range = document.selection.createRange();
}
var newNode = document.createElement("span");
newNode.setAttribute("class", "selectedText");
range.surroundContents(newNode);
$(".selectedText").focus();
});
有效吗?如果没有,你能创建一个重现你的页面的jsfiddle吗?