我有一个链接,其文本内容由某些后端软件决定。根据文本内容的不同,该链接应该是可点击的或不可点击的。如果链接文本为“No New Messages”,我试图使链接无法点击。我正在尝试使用以下代码:
if ($('a#full_notifications_link').text() == "No New Messages"){
$('a#full_notifications_link').click(function(){
return false;
});
}
这不起作用。链接工作正常。如果链接文本为“No New Messages”,如何使链接无效?
要清楚,我不能更改任何HTML,因为它每次都会有所不同,具体取决于后端。此外,我已经确定问题出在第1行,因为如果我在它之后发出警报,警报就不会出现。
此外,当文本显示“No New Messages”时,这是html:
<a data-remote="true" href="/usernotificationslist" id="full_notifications_link">
No New Messages
</a>
答案 0 :(得分:1)
请看这个小提琴: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;
}
});
从函数返回false false通常不会这样做.. event.preventDefault();
答案 1 :(得分:1)
<强> 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"));
}
}
答案 2 :(得分:0)
确保您没有空间来满足条件权利.. 可以肯定的是,不要打破它们
<a data-remote="true" href="/usernotificationslist" id="full_notifications_link">No New Messages</a>
另外,你已经把它们放在里面了吗?
$(document).ready(function(){
//enter code here
});
答案 3 :(得分:0)
您可以使用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();
}
}