2017-02-03 4 views
0

На нашей веб-странице есть поиск, который загружает список событий на основе того, являются ли они открытыми или закрытыми событиями. Каждое событие имеет свой собственный идентификатор. Когда события загружаются, это блок с именем события, датой, администраторы событий называют все внутри asp: LinkButton, который запускает сообщение javascript. Если вы щелкнете в любом месте внутри этого блока, он загружает оперативную информацию о событии.Включить span onclick внутри кнопки ссылки asp

Что я пытаюсь сделать, если событие открыто, поместите ссылку внутри asp: LinkButton, которая приведет пользователя на страницу сведений о мероприятии. Зная, что я не могу вставить теги, но требования клиентов требуют, чтобы ссылка находилась внутри одного и того же блока.

Это пример закрытого события. Это прекрасно работает:

<div id="EventList"> 
    <a id="EventList_lnkEventListItem_0" class="list-item show-overlay" href="javascript:__doPostBack()"> 
     <span class="event-date col-md-48 col-sm-48"> 
      02/02/2017           
     </span>          
     <span class="event-name col-md-48 col-sm-48"></span> 
     <span class="EventCoordinator-name col-md-48 col-sm-48"> 
      Started by: Me 
     </span> 
     <div class="col-md-48 text-sm"> 
      Status: Closed 
     </div> 

     <br class="list-item-clear" /> 
    </a> 
</div> 

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

<div id="EventList"> 
    <a id="EventList_lnkEventListItem_0" class="list-item show-overlay" href="javascript:__doPostBack()"> 
     <span class="event-date col-md-48 col-sm-48"> 
      02/02/2017           
     </span>          
     <span class="event-name col-md-48 col-sm-48"></span> 
     <span class="EventCoordinator-name col-md-48 col-sm-48"> 
      Started by: Me 
     </span> 
     <span class="startedby-name col-md-48 col-sm-48" onclick="window.open(/events/scheduledevents?eventid=####, '_blank')"> 
      Open Event in New Window 
     </span> 

     <div class="col-md-48 text-sm"> 
      Status: Open 
     </div> 

     <br class="list-item-clear" />          
    </a> 
</div> 

Как я могу получить переменный жерех для идентификатора события в событии onclick? Есть ли лучший способ выполнить задачу?

ответ

1

stopPropagation() предотвратит уведомление о любых родительских обработчиках. Вы можете попробовать так:

function parentFunction(){ 
 
    console.log('parent fired'); 
 
} 
 

 
function childFunction(event) 
 
{ 
 
    event.stopPropagation(); // you can comment this line and see the difference 
 
    console.log('child fired'); 
 
}
$('.item-button').click(function(event) { 
 
    event.stopPropagation();
<a href="#" onclick="parentFunction();"> 
 
    Lorem ipsum 
 
    <br/> 
 
    <br/> 
 
    <span onclick="childFunction(event);"> 
 
    Child button 
 
    </span> 
 
    
 
    <br/> 
 
    <br/> 
 
    Still parent 
 
    </a>

+0

Распространение не то, что обязательно останавливает меня. Я не могу получить событие Id в событие onclick. – jcalton88

+0

@ jcalton88, если я правильно понял, вам нужен ItemTemplate. Это может помочь вам http://stackoverflow.com/questions/1336785/asp-net-gridview-itemtemplate –

+0

Спасибо. Я уже использовал itemtemplate. Это была неожиданная проблема с размещением в шаблоне. Я отправлю ответ с тем, что исправил его. Однако, поскольку stoppropagation и комментарий о itemtemplate были ответом (и моя реализация была неправильной), я отмечаю это как ответ. – jcalton88

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