gpt4 book ai didi

jquery - 使用 jquery 访问 twitter bootstrap modal-body 内容

转载 作者:行者123 更新时间:2023-12-01 04:57:14 25 4
gpt4 key购买 nike

我是 jquery 和 twitter bootstrap 的新手,所以请原谅这个愚蠢的问题。

我有一个 MVC View ,它设置了一个 twitter Bootstrap 模式,并且这是通过也在该 View 中输出的链接激活的。

我想将 data-remote 与模态结合使用,以加载具有 MVC 部分 View 内容的模态。

我让所有这些工作都很好。

但是我随后想要做的是能够通过jquery从主视图访问元素(从部分 View ),尽管我确信我已经正确选择了选择器,但它并没有按预期工作。

例如,我有一个 href 链接,我尝试将其分配给单击事件,但这不会触发。

但是,如果我移动脚本,以便将其输出到拉入模态主体的部分 View 中,则脚本将正常工作并处理单击事件。

我宁愿不必在部分 View 中包含脚本(即使引用),我宁愿在主视图中引用一个脚本。

是否能够访问远程加载到模态主体中的元素,而不必将脚本放入远程部分 View 中?

作为补充,我刚刚模拟了一个测试,其中模态不使用数据远程,并且 anchor href 直接插入到模态主体中,这样做我仍然无法访问此 anchor 。单击来自主页的事件。非常感谢任何建议。

做了更多研究,我在下面的帖子中找到了答案 How to set the input value in a modal dialogue?

这似乎表明 jquery 选择器还应该包含 .modal-body所以我更改了以下选择器:

 $("#TestButton").click(function (ev) {
ev.preventDefault()

alert('Test Button Clicked');
})

到此

 $(".modal-body #TestButton").click(function (ev) {
ev.preventDefault()

alert('Test Button Clicked');
})

现在点击事件正如我最初预期的那样触发。

但是我现在不确定为什么我需要 .modal-body 作为 jquery 选择器的一部分。?有人能解释一下吗?

最佳答案

当新的动态内容加载到 DOM 中时,您需要将点击事件连接到 href。

当页面加载时,JQuery 将在 DOM 中查找 $("#TestButton"),但什么也找不到,因为此时动态内容尚未注入(inject)。

有几种方法可以处理这个问题...首先,您可以延迟使用 JQuery 连接点击事件,直到注入(inject)新内容,或者您​​可以使用 JQuery 的 .live 函数。

您的代码将是:

$("#TestButton").live('click', function (ev) {
ev.preventDefault()

alert('Test Button Clicked');
});

实际上...从 JQuery 1.7 开始,Live 似乎已被贬值

这是...

$("#TestButton").on('click', function (ev) {
ev.preventDefault()

alert('Test Button Clicked');
});

希望这有帮助。

关于jquery - 使用 jquery 访问 twitter bootstrap modal-body 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com