2013-09-28 6 views
0

Это не работает, не уверен, что не так. Я не хочу использовать href onclick вообще, я обычно использую id на ссылках ahref, тогда выполняю javascript таким образом, но мне нужно передать параметры из ссылки на функцию, не уверен, есть ли другие альтернативы?javascript не работает динамически созданный javascript alink

код с использованием параметров Isnt показан, его basiacly ссылка форума, но его загрузка темы в DIV

function changetotopicdetails(topicid, topicname) { 
    $('#loadingAjaxs').show(); 
    $('#flubestext').hide(); 

<a href="javascript:changetotopicdetails(@following.Id, @following.ShortName);">@following.Title</a> 

я обычно делаю что-то вроде

$('#changeuserstwohour').click(function() { 
     $('#userswrap').load('@Url.Action("TrendingUsersMenutwohr", "Trending")'); 
    }); 

, но делая это я не могу отправлять параметры функции во время цикла (список тем)

любые предложения?

Ответы указали, что мне нужно переменный, передаваемые в новую {}

$('#changeuserstwohour').click(function() { 
     $('#userswrap').load('@Url.Action("TrendingUsersMenutwohr", "Trending", new {@theid = id, @thename = name})'); 
    }); 

ответ

1

Вы можете сделать свою обычную функцию щелчка, EventListener или привязку и использовать значение данных, чтобы указать вам имя пользователя и трендовых значения.

так что ваш тег будет выглядеть

<a href="#" data-id='@following.Id' data-short-name='@following.ShortName'>@following.Title</a> 

, а затем ваша обычная функция, нажмите которая будет выглядеть

$('#changeuserstwohour').click(function() { 
    $('#userswrap').load('@Url.Action($(this).data(id), $(this).data(short-name)'); 
}); 

вам может понадобиться использовать .each(), если у вас есть кратные или вызвать его после каждой нагрузки ajax, чтобы убедиться, что он прослушивает новые объекты. Я не тестировал это, так как у меня действительно нет функций, но это должно работать! Пожалуйста, дайте мне знать, как это происходит, и если у вас есть другой вопрос :)

+0

эй, я не думаю, что это работает для того, что мне нужно, его великое то, что не знало, что это возможно. но форматирование этого может заставить его не работать? – mxadam

+0

получение неосвещенного символа $ $ ('# contentwrap'). Load ('@ Url.Action («Деталь», «Темы», новый {@id = $ (this) .data (id), @name = $ (this) .data (short-name)}) ', function() {$ (' # loadAjaxs '). hide(); $ (' # flubestext '). show(); window.history.pushState (null,' title ','/users ');}) – mxadam

+0

Привет, мне кажется, вам может понадобиться избавиться от первого $? ;) –

1

Комбинация обеих техник, представленных до сих пор, заключается в том, что вы, вероятно, действительно после.

Ваша разметка для отдельных ссылок действий будет выглядеть следующим образом:

<a href="#" class="selectorForYourActions" data-id='@following.Id' data-short-name='@following.ShortName'>@following.Title</a> 

, а затем ваш на клик обратного вызова, которая будет выглядеть

$('#idOfContainerYourLoopCreatesItemsWithin').on("click", "a.selectorForYourActions", function() { 
    $('.userswrap').load('@Url.Action($(this).data(id), $(this).data(short-name)'); 
}); 

Это будет перехватывать любые динамически созданные элементы, которые соответствуют, что класс, если они созданы в элементе, выбранном селектором идентификаторов, но обрабатывают только клики на якорных тегах с классом маркеров, так что вы можете иметь многие из этих якорей с уникальными (или отсутствующими) идентификаторами и якорями с обычным (или другим) функциональность.

+0

Спасибо, что скопировали мой ответ? –

+0

Я начал с того, что делал это как редактирование вашего ответа, затем понял, что они больше, чем грамматические изменения. Вы заметите, что он представляет случай, используя jquery.on, пузырь событий и ограничение. Это больше, чем разница в изменении, ИМО. Если вы предпочитаете, я просто отвечу на ваш ответ, чтобы заменить его моей версией в качестве редактирования .... –

+0

Хорошо, тогда не стоит беспокоиться, не нужно «кивнуть» мой ответ. –

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