2014-01-08 8 views
1

Я пытаюсь добавить событие click внутри события jquery onclick. Я использую следующий код. Но это не работает. У меня есть интернет-магазин. Я пытаюсь добавить быстрый просмотр продукта. Теперь проблема заключается в том, что кнопка ajax add-to-cart не работает в диалоговом окне jquery. Проблема в том, что я не смог передать идентификатор продукта в кнопку добавления в корзину. Переменная a не работает. Как я могу передать это в функцию onclick для добавления в корзину.Как добавить событие click внутри события click в jquery?

$(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

Я понимаю, что вы пытаетесь связать события нажатия на кнопку в следующей строке:

$("#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)/>"); 

Вы можете сделать это, после строки который вводит кнопку в дом (например, где-то ниже указанной строки):

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

Большое спасибо. Он отлично работает. – user3105947

Смежные вопросы