如何禁用链接点击并启用其他链接?

时间:2014-01-30 12:28:42

标签: javascript php jquery html

我想在点击链接时禁用链接,这是我的代码:

 <a class="cmd-7" href="?cmd=7" style="color:#00F; margin-left:15px; text-decoration:underline">Past 7 Days</a>
<a class="cmd-14" href="?cmd=14" style="color:#00F; margin-left:15px; text-decoration:underline">Past 14 Days</a>
<a class="cmd-30" href="?cmd=30" style="color:#00F; margin-left:15px; text-decoration:underline">Past 30 Days</a>
<a class="cmd-custom" href="?cmd=custom" style="color:#00F; margin-left:15px; text-decoration:underline">Set A Custom Date Range</a>

这是我的javascript代码:

<script type="text/javascript">
jQuery(function($){
// Get the cmd query parameter
var cmd = getParameterByName('cmd');
if(cmd) {
// Disable the link
$('a.cmd-' + cmd).click(function(event) {
  event.preventDefault();
})
// Add a class to allow styling
.addClass('disabled');
}
});
</script>

它给出了错误

ReferenceError:未定义getParameterByName

如何删除此错误?

我希望当我点击过去7天链接此链接已禁用或启用其他链接时,如果我点击过去14天链接,过去7天链接已启用且过去14天链接已禁用。我会做什么此?

2 个答案:

答案 0 :(得分:0)

尝试:

<script type="text/javascript">
//var prevClicked;
jQuery(function($){
// Disable the link
$( "a[class*='cmd']" ).click(function(event) {
  event.preventDefault();

    if(typeof prevClicked!='undefined'){ $("a[class*='cmd-"+prevClicked+"']").attr('href','?cmd='+prevClicked);} 

    url = $(this).attr('href');
    prevClicked = url.split('=')[1];
    $(this).attr('href',"javascript:;");
  $(this).addClass('disabled'); //adding 'disabled' to the clicked <a> tag
  $("a[class*='cmd']").not(this).removeClass('disabled'); //removing 'disabled' from all <a> tags except the one clicked
});
// Add a class to allow styling

});
</script>

答案 1 :(得分:-1)

您可以向所有链接添加公共类,以便您可以先启用所有链接,然后使用“this”作为参考禁用当前链接

在准备好的功能中使用

假设您的公共类是“cmd-common”

$(document).on('click', '.cmd-common', function(event) {
    event.preventDefault();
    $('.cmd-common').attr('disabled',false);
    $(this).attr("disabled", true);
});