2014-01-08 114 views
1

我试图在jquery onclick事件中添加单击事件。我使用下面的代码。但它不起作用。我有在线购物网站。我试图添加产品的快速浏览。现在的问题是ajax add-to-cart按钮在jquery对话框中不起作用。问题是我无法将产品ID传递到购物车按钮。变量a不起作用。我可以如何将它传递给add-to-cart onclick函数。如何在jquery中的click事件中添加点击事件?

$(function() { 
    debugger; 
    $("#dialog").dialog({ 

     modal:true, 
     autoOpen: false, 
     draggable:true, 
     resizable: false, 
     width: "auto" 

    }); 

    $(".dialogify").bind("click", function(e) { 
     e.preventDefault(); 
     var a=$(this).next().find('img').attr('buttons'); 
     $("#dialog").dialog('option', 'title', $(this).next().find('img').attr('title'));  
     $("#dialog").html("<img src='" + $(this).next().find('img').attr('src') + "' width='150' + height='150'>"+"<label>"+"<br/>"+ $(this).next().find('img').attr('price')+"<br/>"+"</label>"+"<label>"+$(this).next().find('img').attr('desc')+"</label>"+"<br />"+"<input type='button' value='@(Model.ProductPrice.AvailableForPreOrder ? T("ShoppingCart.PreOrder") : T("ShoppingCart.AddToCart"))' class='button-2 product-box-add-to-cart-button' onclick= (a)/>") 
     $("#accordion").accordion(); 
     $("#dialog").dialog("option", "position", { 

      modal:"true", 
      my: "center", 
      at: "center", 
      title:"title", 
      of: window 

     }); 
     if ($("#dialog").dialog("isOpen") == false) { 
      $("#dialog").dialog("open"); 

     } 
    }); 
}); 

.cshtml

<div class="buttons" id="but"> 
    @if (!Model.ProductPrice.DisableBuyButton) 
     { 
      <input type="button" value="@(Model.ProductPrice.AvailableForPreOrder ? T("ShoppingCart.PreOrder") : T("ShoppingCart.AddToCart"))" class="button-2 product-box-add-to-cart-button" onclick="AjaxCart.addproducttocart('@addtocartlink ');return false;" /> 
     } 
    </div> 
+0

只是一个提示:你使用的是旧版本的jQuery(<1.7)吗?如果没有,为什么不使用'.on()'而不是'.bind()'? – melancia

+0

按照您的问题标题$(this).trigger('click'); –

回答

1

我想你正试图在以下行click事件将按钮绑定:

$("#dialog").html("<img src='" + $(this).next().find('img').attr('src') + "' width='150' + height='150'>"+"<label>"+"<br/>"+ $(this).next().find('img').attr('price')+"<br/>"+"</label>"+"<label>"+$(this).next().find('img').attr('desc')+"</label>"+"<br />"+"<input type='button' value='@(Model.ProductPrice.AvailableForPreOrder ? T("ShoppingCart.PreOrder") : T("ShoppingCart.AddToCart"))' class='button-2 product-box-add-to-cart-button' onclick= (a)/>"); 

您可以通过行之后做到这一点将按钮插入到dom中(即,在上述线以下的任何地方):

$("#dialog").find('.product-box-add-to-cart-button').on('click', function() {}); 
+1

非常感谢。它工作正常。 – user3105947