2012-06-01 6 views
0
<li> 
    <div class="slidera_img"> 
    <a href="image.jpg" rel="example_group" title="<a href='#' onClick='ajaxpost(@item.Id)'><img src='foo.jpg'/></a>"> 
    <img src="@Url.Action("ViewImage", "Image", new { id = item.Id, imageType = "thumb" })" alt="" width="100" height="100" /> 
    </a> 
    </div> 
    <div class="slidera_num">@item.VoteCount</div> 
</li> 

У меня есть код выше, который открывает модальный бокс, href внутри slidera_img div делает ajax get со следующим кодом. После этого я хочу иметь возможность обновить div с помощью класса slidera_num до текущего значения, которое я получаю из запроса ajax.update div после ajax call

<script type="text/javascript"> 
    function ajaxpost(id) { 
     var item = $(this).parent(); 
     alert(item); 
     $.get('@Url.Action("VoteAjax","Home")', { id: id }, function (response) { 
      item.closest("li").find(".slidera_num").html(response.vote); 
     }); 
    } 

Я попытался выше, но не повезло.

Как я могу это сделать?

Спасибо.

+0

Почему ваш тег href находится в вашем атрибуте title? –

+0

это то, как работает fancybox – DarthVader

ответ

1

первый раз ссылку на изображение, которое нужно:

<a href="image.jpg" rel="example_group"><img src="@Url.Action("ViewImage", "Image", new { id = item.Id, imageType = "thumb" })" alt="" width="100" height="100" /></a> 

затем вызвать FancyBox, чтобы отобразить его. по этому вызову вы можете подключиться к событию onComplete, которое возвращает элемент, а затем вызывает любой другой вызов ajax, необходимый для обновления страницы. , поэтому просто позвоните по этому адресу:

$("img[rel='example_group'").fancybox({ onComplete: function(item){ 
    $.get('@Url.Action("VoteAjax","Home")', { id: item.id }, function (response) { 
     $(item).closest("li").find(".slidera_num").html(response.vote); 
    }); 
}}); 
0

Не зная, как FancyBox работает точно, я не могу помочь вам много, но я могу предложить некоторые вещи:

  1. Проверьте в вашем браузере, если есть ошибка Javascript. Если ajaxpost() или функция обратного вызова ajax не работает, ваш код не будет работать .
  2. Откройте свою страницу в браузере с помощью отладчика, например, веб-браузера с веб-инспектором или Firefor с Firebug, и установите точку останова в своем ajaxpost() и обратном вызове ajax по одному в каждом. Проверьте правильность выбора элементов. Является ли товар тем, что вы ожидаете от него? Является ли цепочка селектора в вашем обратном вызове ajax обнаружением того, что вы ожидаете от него?
  3. Скажите, как выглядит оригинальная ajaxpost() и что именно вы добавили. Также сообщите нам, что ваш html преобразуется, когда загружается ваш fancybox. Вы также можете увидеть это в Web Inspector или Firebug. С помощью этой информации кто-то может помочь.
Смежные вопросы