jquery - 在模态触发后替换文本

时间:2015-02-17 14:42:05

标签: javascript jquery replace reveal.js

我试图通过模式中的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>

2 个答案:

答案 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来电时更改htmlbody

尝试

&#13;
&#13;
.text()
&#13;
$("body *").each(function () { 
    if ($(this).children(":contains('Change me')")) { 
      $(this).text($(this).text().replace("Change me", "I have been changed"));
  } 
});
&#13;
&#13;
&#13;