2011-11-16 89 views
12

Làm cách nào để gọi một hàm JavaScript từ thẻ href trong html? Tôi đã tạo vài tab. Tôi muốn khi người dùng nhấp vào bất kỳ tab nào, cùng với chức năng JavaScript sẽ được gọi. Tôi làm nó như thế nào?Làm thế nào để gọi một hàm javascript từ thẻ href trong html?

<?php if($order == 1){ ?> 
<li class="cat-one"><a href= "javascript:loadProducts($categoryId)" > <?php echo $categoryName ?> </a></li> 
<?php } ?> 

Đây là Javascript tôi

<script type="javascript" > 
function loadProducts($categoryId) 
{ 
    alert("Hello World!"); 
    return false; 
} 

</script> 
+0

Bạn có một số mã để hiển thị cho chúng tôi không? – Fluff

+0

Bạn cần chia sẻ một số mã nếu bạn muốn được trợ giúp. Nếu bạn muốn hiển thị tab và thực thi chức năng JavaScript khi người dùng nhấp vào tab đó, bạn thường sẽ giải quyết điều này mà không cần mã phía máy chủ, nghĩa là không có PHP. –

+0

Bạn phải tạo sự khác biệt giữa hành động phía máy chủ và phía máy khách. PHP chỉ khả dụng trên máy chủ. HTML, CSS và Javascript chỉ khả dụng ở phía máy khách. Thẻ, với thuộc tính 'href' chỉ là một công cụ phía HTML. – reporter

Trả lời

21

Trong thẻ href, mà không chỉ định một liên kết, xác định javascript tên hàm của bạn.

Ví dụ

<a href='javascript:myFunction()'> Click Me! <a/> 
+0

trong ie9 điều này làm cho chức năng chạy và điều hướng khỏi trang. Không bao giờ sử dụng để làm điều đó trong ie7. cách giải quyết? – stu

6

Không sử dụng href, sử dụng thuộc tính onclick cho điều này

<a href="http://www.example.com" onclick="return confirm('are you sure?')">test</a> 

thấy this example

EDIT (vì mã được thêm vào trong câu hỏi): điều này sẽ gọi hàm JS của bạn:

<?php if($order == 1){ ?> 
    <li class="cat-one"> 
    <a href="javascript:void(0)" onclick="loadProducts(<?php echo $categoryId ?>)"> 
     <?php echo $categoryName ?> 
    </a> 
    </li> 
<?php } ?> 
+0

Và cách tôi có thể viết một chức năng với các thẻ

0

Nếu bạn có thư viện jquery bạn có thể gọi với lớp:

$(".loadProducts").click(function(event) { 
     // Default action of the event will not be triggered. 
     event.preventDefault(); 
     // Get category ID 
     var categoryId = $(this).attr('data-categoryid'); 
     // TODO 
     alert("Hello World!"); 
     return false; 
}); 

Mục đích:

<li class="cat-one"><a href="#" class="loadProducts" data-categoryid="<?php echo $categoryId;?>" > <?php echo $categoryName ?> </a></li> 
Các vấn đề liên quan