【发布时间】:2021-01-24 21:27:28
【问题描述】:
我正在尝试在单击选定的 p 标签时在它周围切换虚线边框。
我使用 css 脚本对其进行了格式化,然后在 jQuery 中添加了一个 toggleClass(),但是当我运行我的程序时,它不起作用。虚线边框不出现。
有谁知道如何让 toggleClass() jQuery 工作?提前谢谢你。
我将在下面分享我的代码:https://codepen.io/monkeycrane2010/pen/poEXENr
HTML
<h1 style="text-align: center;">Baseline</h1>
<div id="draggable" class="ui-widget-content">
<p>Text box to drag</p>
</div>
<button id="sheepbtn">+New </button>
<div id="one">Library Box</div>
<p>animal rocks!</p>
CSS
#draggable {
width: 150px; height: 150px; padding: 0.5em;
};
.selected {
border: 10px dotted orange;
};
JavaScript
$(function () {
$("#draggable").draggable();
$("#draggable").resizable();
$("#sheepbtn").on("click", function () {
$("#one").append($("<p>tester</p>").draggable()); // CREATE NEW
$("p").each(function (index) {
// EACH
$(this).attr("id", index);
console.log(index + ": " + $(this).text());
});
$("p").on("click", function (event) {
// CLASS
$("h1").html(this.id);
$(this).toggleClass("selected");
});
});
});
【问题讨论】:
-
欢迎来到 Stack Overflow。您的切换似乎有效,但只有在您点击“New+”按钮后才会有效。如果您希望它一直工作,请将那段代码从新项目的创建中移出。
-
感谢@Twisty 对这个社区的热烈欢迎以及您的建议!最后我的 css 文件中有一个新手语法错误(我不小心在每个属性的末尾添加了分号,一旦我把它拿出来......它起作用了!)。我还找到了另一种使用 mousemove 和 mouseleave 来提供选定效果的方法。 --- 我刚刚更新了我的代码笔
-
不客气@MonkeyCrane 我发布了一个答案,其中包括清理后的 CSS 和一些建议。如果有帮助,请给它一个赞成票。如果它确实回答了您的问题,请点击复选标记;如果没有,您可以回答您自己的问题。