【发布时间】:2014-12-18 14:10:14
【问题描述】:
我有一个<div> 和id="modal" 使用jQuery load() 方法动态生成:
$(".show-product").click(function(){
$("#modal").load($(this).attr("href"), function(e){
$(".details").click(function(){
我不得不将代码放在类的 click 事件中。这段代码中的详细信息,因为如果我没有运行的话。我在这两个地方都有代码,因为我也在模态之外使用它,被加倍了。
由于我在此处看到的一个示例 Stack Overflow,我动态构建的表也发生了类似的情况。它不捕获单击事件,窗口在打开模式时变暗,但它不调用 url 或加载。这段代码:
$.ajax({
url : form,
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR){
$("#dynamicTable>tbody>tr").remove();
var x = [];
$.each(dataSet, function(i, item) {
x.push('<tr><td><a href="/product/' + item.product.id + '" class="details" data-toggle="modal" data-target="#modal">' + item.product.name + '</a></td>');
x.push('<td>' + item.product.name + '</td></tr>');
});
$("#dynamicTable>tbody").html(x.join(""));
},
error: function(jqXHR, textStatus, errorThrown){
alert('Not product found!');
}
});
event.preventDefault()
我认为在这两种情况下事件都不起作用,因为它们是动态加载的。我在此处和 Google 上寻找并尝试进行更改,但无需复制代码(在事件 $(document).ready 和每个动态加载数据的事件中,模态窗口和加载表)。
变化:
$(document).ready(function() {
//$(".show-product").click(function(){
$(".show-product").on("click", function(e){
$("#modal").load($(this).attr("href"), function(e){
//$('.details').click(function(e){
// ........
});
});
// Added
$(".details").on("click", function(e){
..........
..........
});
});
这些更改仍然不起作用,仅适用于具有静态内容的页面,当我获得内容动态(模态、表格动态和其他)不起作用的事件时。
我做错了什么?
【问题讨论】:
-
尝试将 $(".details").on("click", 改为 $("#dynamicTable").on("click", ".details", fun...跨度>
-
@Alexander 似乎很模糊,因为在这两个事件中复制代码的矿井:-S。您的代码可以重用以从非模态页面捕获事件吗?感谢您的回复;)
标签: javascript jquery twitter-bootstrap jquery-events