2015-03-03 5 views
0

У меня есть гиперссылка, которую я пытаюсь изменить значение href с помощью jQuery, чтобы вызвать функцию. Ранее это используется, чтобы указать URL-адрес, это был мой предыдущий код, где myUrl является строкой переменной передается в:jQuery: использовать .attr ('href', "") для вызова javascript

$('#lnkEdit').attr('href','" + myUrl + "'); 

мне нужно изменить, чтобы вместо того, чтобы вызвать функцию.

Я попытался передать его в качестве такового, где openDialog только мое всплывающее окно функции:

string editUrl = "javascript:openDialog('myUrl/EditForm.aspx')" 
$('#lnkEdit').attr('href','" + editUrl + "');" 

, но это просто переходит меня работать, как URL в браузере (браузер пытается перейти к текст вызова функции).

Есть ли способ сделать эту работу?

+0

Почему бы не удалить href и использовать событие click вместо этого? – Gigo

+0

Вместо изменения атрибутов элементов (как если бы вы пишете HTML) вы должны привязать обработчик события клика к элементу. Найдите ['.click()'] (http://api.jquery.com/click/) или ['.on()'] (http://api.jquery.com/on/). – JJJ

ответ

1

Вы можете использовать метод prop, для образца:

string editUrl = "javascript:openDialog('myUrl/EditForm.aspx')" 

$('#lnkEdit').prop('href', editUrl); 

Но как хороший pratice, будет хороший подход, используя функцию, чтобы обеспечить окно для образца:

$('#lnkEdit').on('click', function() { 
    openDialog('myUrl/EditForm.aspx'); 
}); 
0

Типичным способом является подключение обработчика кликов:

$('#lnkEdit').on('click', function() { 
    openDialog('myUrl/EditForm.aspx'); 
}); 

Или, если URL-адрес приходит откуда-то еще во время генерации HTML:

<a id="lnkEdit" href="#" data-href="myUrl/EditForm.aspx">test</a> 

Тогда:

$('#lnkEdit').on('click', function(e) { 
    e.preventDefault(); 
    openDialog($(this).data('href')); 
}); 
0

Я думаю, что вы хотите изменить его на что-то вроде var editUrl = "openDialog('myUrl/EditForm.aspx')"; $('#lnkEdit').attr('href',"#"); $('#lnkEdit').attr('onclick',editUrl); Это задает объект, чтобы изменить OnClick, а не выступать в качестве ссылки. Это немного более приятный способ сделать это, и проще, чем я полагаю.

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