2013-01-18 3 views
8

foreach'da html öğeleri var. Kimlik isimlerini el ile bildiremiyorum. şimdi .Tıklama() benim bazı işlemleri yapmaya eash <a> bağlantıdan fonksiyonunu ihtiyaçKimliği ayarlayın ve mvc 4 traş makinesinde nasıl dinamik olarak kullanın?

foreach (var item in Model) 
    { 
    <a href="#" id='[email protected](item.Id)' class="select-link">Select this</a> 
    } 

Ama: Ben Id ayarlamak için id='[email protected](item.Id)' kullandı. Dinamik kimlikler için yazma tıklama işlevi nasıldır?
Bunu kontrol ettim, ama çalışmıyor:

$("#[email protected](item.Id)").click(function() { 

    //any operation 

}); 

Edit:

<script> 
    $(document).ready(function() { 
     $('.select-link').click(function() { 
      var id = $(this).attr('data-id'); 

      url = '@Url.Action("SelectThis", "Product")'; 
      var data = { id: '@Model.Id' }; 
      $.post(url, data, function (result) { 
       if (result.success) { 
        alert("Thanks"); 
       } 
       else { 
        alert("Problem occured..."); 
       } 
      }); 

     }); 
    }); 
</script> 

Bu tıklama() işlevlerini istek yineleme sayar kez kontrol cihazına gönderin. Kodumdaki sorun nedir?

+0

'$ ('a') 'yı tıklatın();' bunu yapabilir. Aslında amacın açık değil. Maddeleri yapmak için neden sadece belirli bir kimlik seçmek istiyorsun? – Jai

+0

Örneğin, http://stackoverflow.com adresindeki yanıt kabul yapısı gibi. İhtiyacım olan fikir benzerdir, dinamik olarak sıralanan cevap listesindeki herhangi bir öğeyi seçmek için. –

cevap

11

Öznitelikleri kullanmanızı öneririm. JS sonra

foreach (var item in Model) 
    { 
    <a href="#" data-id='@item.Id' id='[email protected](item.Id)' class="select-link">Select this</a> 
    } 

...

$('.select-link').click(function() 
{ 
var id = $(this).attr('data-id'); 
}); 

her #id için ayrı işleyici işlevi olmadan (örneğin select-list) tüm benzer bağlantıları kablolu ediyoruz bu şekilde.

+0

bunun için teşekkürler, işe yarıyor, ancak herhangi bir bağlantıyı tıklattığımda, işlemler çok kez çalışıyor, foreach sona erene kadar ... –

+0

Çıkış kodunuzu (HTML) kontrol edin. Büyük olasılıkla her yinelemeyi döngü boyunca gönderdiğim JS'yi bağlayacaksınız. Kodumla sadece JS ONE TIME, yani döngüden sonra eklemeniz gerekiyor, ve sonra tüm bağlantılar için çalışacaktır. –

+0

Sorumu düzenledim. bakınız. çıkış kodu doğru. data-id satır 1, 2, 3 değerleri. id = 'ProductSelect _ @ (item.Id)' aynı zamanda çalışır, ancak istek birçok kez denetleyiciye gider (yineleme sayıları) –

İlgili konular