在特定条件下是否可以防止Href页面更改?

时间:2015-10-28 06:04:50

标签: javascript jquery jquery-mobile

正如标题所说,是否有可能阻止针对特定条件的Href页面更改。

例如;如果我有一个div

<div href="#nextpage.html">Click me</div>

是否可以将if语句设置为仅允许此div的某个条件转到下一页?

例如

var canclick ="can_click";

if(canclick=="can_click"){

// Then allow the href to process to the next page.
} else {

// Have an alert up to say that the user can not proceed to the next page. And prevent the href to move to the next page. 
}

修改

 $("#anchor").on('click', function(e) { 

 alert("clicked2");

})

编辑:

点击事件的唯一方法是

    <a href="#nextpage.html" onClick="clicked();"></a>

function clicked(){
alert(detected);

}

编辑: 我也试过这些。没有任何警报被调用。

 if($("#anchor").data('clicked'))
{
alert("again clicked");
}    
             $("#anchor").on('click', function(e) { 

 var $this = $(this);
    if($this.data('clicked')) {
       alert("clicked");
    }

}) 

2 个答案:

答案 0 :(得分:1)

如果你使用jQuery,你会做类似的事情:

&#13;
&#13;
$(document).ready(function() {
  $("a").click(function(e) {
    if ($("#enable").is(":checked")) {
      window.location = e.href;
    } else {
      e.preventDefault();
    }
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
  <input id="enable" name="check" type="radio" value="Enable" />Enable
  <br>
  <input id="disable" name="check" type="radio" value="Disable" />Disable
  <br/>
  <a href="http://stackoverflow.com">Stackoverflow</a>
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这是一个非常简单的例子。如果满足初始条件(i = 0),则不会触发单击功能。然后,再次点击该链接和i != 1,以便继续正常的<a>导航。

&#13;
&#13;
i = 0;

$(document).on('click', 'a', function(e) {
  if (i == 0) {
    e.preventDefault();
    alert('i = 0');
  } else {
    alert('i = ' + i);
  }
  i++;
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="//stackoverflow.com">Stackoverflow</a>
&#13;
&#13;
&#13;