如果href具有哈希标记id,如何调用javascript函数

时间:2016-09-13 10:56:42

标签: javascript jquery html

如果href具有hash标记id,我想在href上调用javacsript函数。我需要#table,因为我使用的是bootstrap标签,所以不能使用javasript:show_create_msg(); 这是我的代码

<a  href="#table:show_create_msg();">Table</a>
function show_create_msg()
{
   alert("error");
}

4 个答案:

答案 0 :(得分:2)

  

添加onclick事件和prevent点击事件,当您点击该链接时,它不会加载该页面。

<a href="#table" onclick="show_create_msg();">Table</a>

<script>
function show_create_msg()
{
  alert('is working');
  // Do something;
  return false;
}
</script>
  

你需要找到哈希http://example.com#table

<script>
function show_create_msg()
{
  alert('is working');
  // Do something;
  return false;
}
var hash = window.location.hash;
if(hash == '#table'){
  show_create_msg();
}
<script>

答案 1 :(得分:0)

onclick事件添加到此链接,然后编写执行某项操作的JavaScript函数:

<a href="#" onclick="show_create_msg();">Table</a>

<script>
function show_create_msg()
{
    // Do something;
}
</script>

答案 2 :(得分:0)

您可以为元素指定一个ID,并附加一个click事件。

我会告诉你如何以更恰当的方式做到这一点(使用&#34; onclick&#34;内联元素不是一个好习惯)

以下是一个例子:

<强> HTML

<a id="myLink" href="#table">Table</a>

<强>的jQuery

$('#myLink').on('click',function(){
    show_create_msg();
});

甚至更好:

$('#myLink').on('click',function(){
    // your show_create_msg code here
});

如果要阻止默认链接行为:

$('#myLink').on('click',function(e){
    e.preventDefault();

    // your show_create_msg code here
});

如果您只想在特定的哈希值上触发代码:

$('#myLink').on('click',function(e){
    var hash = window.location.hash;
    if(hash=='#table'){
        // your show_create_msg code here
    }
});

如果您不想使用jQuery,可以使用原生的javascript代码:

document.getElementById('myLink').addEventListener('click',function(e){
    // your show_create_msg code here
});

希望它有所帮助

答案 3 :(得分:0)

如果您不想更改html源代码,请从元素的href属性中获取functoin名称,并将其设置为onclick属性。

var fn = $("a").attr("href").replace("#table:", "");
$("a").attr("onclick", fn)

function show_create_msg(){
    console.log("function called");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#table:show_create_msg();">Table</a>