У меня есть ссылка, текстовое содержимое которой определяется некоторым программным обеспечением. В зависимости от того, что представляет собой текстовый контент, эта ссылка должна быть кликабельна или неактивна. Я пытаюсь сделать ссылку не интерактивной, если текст ссылки "Нет новых сообщений". Я пытаюсь использовать следующий код:
if ($('a#full_notifications_link').text() == "No New Messages"){
$('a#full_notifications_link').click(function(){
return false;
});
}
Это не работает. Ссылка работает так же, как и в обычном режиме. Как получить ссылку, чтобы не работать, если текст ссылки "Нет новых сообщений"?
Чтобы быть ясным, я не могу изменить какой-либо из html, потому что он будет отличаться каждый раз в зависимости от бэкэнд. Кроме того, я решил, что проблема связана с линией 1, потому что, если я помещаю предупреждение сразу после него, предупреждение не появляется.
Кроме того, вот html, когда в тексте говорится "Нет новых сообщений":
<a data-remote="true" href="/usernotificationslist" id="full_notifications_link">
No New Messages
</a>
См. Этот скрипт: http://jsfiddle.net/jFIT/J8eEL/
$('a#full_notifications_link').click(function(event){
if ($.trim($('a#full_notifications_link').text()) == "No New Messages"){
event.preventDefault();
return false;
}
});
return return false из функции обычно не делает этого. event.preventDefault();
HTML
<a href="javascript:myfunction();" id="full_notifications_link">text</a>
JAVASCRIPT
function myfunction(){
var text_of_link = $('a #full_notifications_link').text();
if(text_of_link == "No New Messages"){
//do nothing
}else{
window.location.replace($('#full_notifications_link').attr("href"));
}
}
Удостоверьтесь, что у вас нет пробелов, чтобы они соответствовали условию. Конечно, не прерывайте их
<a data-remote="true" href="/usernotificationslist" id="full_notifications_link">No New Messages</a>
также, вы уже разместили их внутри?
$(document).ready(function(){
//enter code here
});
Вы можете использовать preventDefault для этого, поймав событие click
BTW, это не работает для меня, я не знаю, почему onclick не находит функцию привязанной хехе
Хотя это лучший подход, я думаю, http://jsfiddle.net/A2wns/1/
// HTML
<a href="..." onclick="checkMessage()">No New Messages</a>
// js
function checkMessage(evt){
if ( $(evt.target).text() === "No New Messages"){
evt.preventDefault();
}
}