MVC - jQuery няма достъп до добавения частичен изглед, създаден от Ajax и jQuery

Имам прост частичен изглед, който се нарича от Ajax и ще се добави към span на cshtml страница от jQuery. До сега всичко работи перфектно.

Create.cshtml

<span id="SpanCoverPhoto"></span>

myjQuery.js

$(document).ready(function () {

    $('select[id=BusinessList]').before(function () {
        loadCoverPhotos($('select[id=BusinessList]'));
    });

    $('select[id=BusinessList]').change(function () {
        loadCoverPhotos($('select[id=BusinessList]'));
    });

    function loadCoverPhotos(businessList) {

        var id = businessList.val();

        $.ajax({
            url: "/CoverPhotos/Load",
            type: "POST",
            data: { 'BId': id },
            success: function (data) {
                $('span[id=SpanCoverPhoto]').html(data);
            },
            error: function () {
                alert("Cover photos not loaded");
            }
        });
    }

});

Частичен изглед:

@model IEnumerable<banaam.Models.CoverPhoto>

<div>
   @foreach (var item in Model)
    {
      <div class="Coverphoto">
         <img src="~/Images/BusinessBackground/[email protected]" class="img-thumbnail" style="max-width:120px; max-height:100px;" />
      </div>
    }
</div>

В момента бих искал да щракна върху снимка и отново да я обработвам от jQuery. Но данните за добавяне към обхвата не са показани в „преглед на източника на страницата“ и просто можех да ги видя, когато използвам F12.

Бихте ли могли да ме уведомите как мога да щракна върху снимките и да получа отговор от jQuery?

Най-добри поздрави и много благодаря за отделеното време,

Амин


person Amin Farvardin    schedule 31.08.2015    source източник
comment
Съдържанието, заредено от AJAX, няма да се показва в изходния код на страницата за преглед и Защо не използвате селектор на ID като $('#SpanCoverPhoto')?   -  person Satpal    schedule 31.08.2015


Отговори (2)


Трябва да зададете слушател на document с jQuery, за да слушате това събитие на цялата страница. Дори когато се добавят нови елементи.

Можете да го направите така:

$(document).on('click', '.your-class', function(event) {
    console.log('Image clicked!');
});

Променете .your-class с .img-thumbnail например.
И погледнете документа: http://api.jquery.com/on/.

person Lancelot HARDEL    schedule 31.08.2015
comment
Благодаря ти много. спести ми много време. - person Amin Farvardin; 31.08.2015

Можете да използвате jQuery On за обвързване на събития към елементите, които се зареждат след първоначалното зареждане на страницата.

$(document).on('.Coverphoto').click(function(){ //your implementation here });

Забележка: Не можете да видите съдържанието на документа, който се зарежда с помощта на View Page Source. Те се виждат само чрез F12 (Инструменти за програмисти)

person U.P    schedule 31.08.2015