2015-04-02 54 views
0

假设我正在建造类似于购物车的东西。从附加文本调用javascript(订购购物车)

我有一个主页和很多子页面。 在子页面上,我有一些指定的产品,用户可以通过点击按钮添加到订单。

如果用户点击按钮,JavaScript被称为抓取产品的名称,并将AJAX发送给某个PHP文件,该文件将该产品名称添加到$ _SESSION数组中。

如果购物车中至少有一件产品出现在屏幕底部的FIXED div上,这个div运行模态(bootstrap),它包含用户添加到订单中的所有产品。我再次使用javascript + AJAX来确定点击。如果是这样,就会有一个呼叫.php文件,它返回STRING包含所有产品。然后,这个字符串被附加到这个模式中的div上。

这种模式的内容是这样的:

'name_of_the_product', '删除', 'id_from_session_array' ... ...

所以我想允许用户使用DELETE选项任何他的产品在这个清单中,如果他不再需要这种产品在购物车中。我将删除文本包装在一些锚中,并将它给了它 - 让我们说'.delete_from_cart'。

而现在,当我试图在JavaScript来检查,如果这个元素(“.delete_from_cart”)已被点击,什么都不会发生。此 示例代码如下所示:

$('.delete_from_cart').click(function() { 
    alert("foo"); 
}); 

没有警报点击一些.delete_from_cart格后都没有。但是,在代码源中,所有这些锚都有这个类。

如何解决这个问题?它看起来像JavaScript没有看到从这个div的Ajax附加元素。任何帮助?

+1

在浏览器控制台任何错误..?你能给我们演示一个小提琴吗? – Sarath 2015-04-02 12:55:06

回答

2

,因为你说,你的模式是使用Ajax调用产生的,你就无法点击事件附加到元素。您将需要使用jQuerys on()方法来绑定onclick。

$("#themodal").on("click", ".delete_from_cart", function(){ 
alert('it worked'); 

});

请参阅()方法的更多详细信息。 https://api.jquery.com/on/