2014-05-09 57 views
0

我需要處理的超鏈接,但它不是一個工作功能點擊數..超鏈接的onclick功能不能正常工作

HTML代碼: -

<a href="#" onclick="updateParent()" id="2" value="2">CLICK HERE</a> 

jQuery的: -

$(document).ready(function(){ 

    function updateParent(control) { 
        alert('Hi') 
       } 

}) 

http://jsfiddle.net/sbnBy/1/

+1

既然您正在使用jquery ......您爲什麼不使用.click()事件? - > http://api.jquery.com/click/ –

回答

2

function應該在全球範圍內爲onclick來窩RK。

除了功能刪除一切:

function updateParent(control) { 
    alert('Hi') 
} 

但上面的jsfiddle創建一個封閉仍然無法正常工作。

所以最終的解決辦法是剛:

window.updateParent = function(control){ 
    alert("hi"); 
} 

而且你不需要內聯JS。使用

$(document).ready(function(){ 
    $('#2').click(function(e){ 
     e.preventDefault(); // prevent the default action such as redirecting. 
     alert('hi'); 
    }); 
}); 

你也可以改變使用裹在頭上

+1

你*可以*改變jsFiddle的設置。只要將'onload'改成'no wrap,'。 –

6

updateParent只有.ready()函數內部存在的jsfiddle選項。它需要是全球性的onclick工作。

此外,你不應該使用內聯事件。你有jQuery,使用它。

<a href="#" id="2" value="2">CLICK HERE</a> 

<script> 
    $(document).ready(function(){ 
     $('#2').click(function(e){ 
      // preventDefault... it prevents the "default" action of the tag 
      // In this case, it would try to nagivate to `#`. Which would 
      // scroll the page to the top. 
      e.preventDefault(); 

      alert('hi'); 
     }); 
    }); 
</script> 
+0

好的答案,也許增加了e.PreventDefault()後面的目的,因爲問這個問題的人看起來對於jQuery來說是新的。 –

+0

@AlexKey:我在代碼塊中添加了一條評論。怎麼樣? :-) –

+0

看起來不錯,很好。 –