我试图通过模式中的jquery替换文本。我的“.replace”部分在我的控制台中运行良好,当模态已经可见并打开时,屏幕上会显示“更改我”文本。但是,如果没有文字可见,我就无法工作。我相信我们正在使用'揭示'。有什么想法吗?
如果有帮助,可通过按钮点击触发模态。超时并不理想。
$("*").each(function () {
if ($(this).children().length == 0) {
$(this).text($(this).text().replace("Change me", "I have been changed"));
}
});
}
<div id="myModal" class="reveal-modal" style="visibility: visible">
<div class="my-modal-content">
<div class="myText">Change me</div>
</div>
</div>
答案 0 :(得分:0)
查看包含reveal.js模态插件here
的基础文档从该页面
揭密插件的早期版本发出了非命名空间打开,打开,关闭和关闭 d事件但是,这些已被命名空间 open.fndtn.reveal , opens.fndtn.reveal , close.fndtn.reveal 和< strong> closed.fndtn.reveal 事件。发布Foundation 5.4时,将完全弃用未命名空间的事件。
因此,根据您正在使用的reveal.js版本,看起来您可以使用哪些事件。
从该页面,这里是挂钩到已打开事件的片段:
$(document).on('opened.fndtn.reveal', '[data-reveal]', function () {
var newText = $('.myText').text().replace("Change me", "I have been changed");
$('.myText').text(newText );
});
编辑添加 - 对于旧版本,我相信这是挂钩事件的方式:
$('#myModal').bind('reveal:open', function () {
var newText = $('.myText').text().replace("Change me", "I have been changed");
$('.myText').text(newText );
});
答案 1 :(得分:0)
&#34;改变我&#34;是text
的{{1}}个节点children
? ,或.myText
false
?此外,if ($(this).children().length == 0)
会选择$("*")
和html
个元素,在body
来电时更改html
和body
?
尝试
.text()
&#13;
$("body *").each(function () {
if ($(this).children(":contains('Change me')")) {
$(this).text($(this).text().replace("Change me", "I have been changed"));
}
});
&#13;