Tôi đang cố gắng chuyển một biến cho hàm nội tuyến jQuery (ví dụ: sử dụng onMouseOver="function();"
trong liên kết thực tế (là thẻ khu vực từ bản đồ hình ảnh)).jQuery - Gọi hàm nội tuyến
Chức năng này chỉ được gọi nếu tôi đặt nó trước dòng $(document).ready(function(){
, nhưng làm điều này đang gây ra tất cả các loại vấn đề với jQuery.
Tất cả tôi muốn là một thẻ đơn giản (như <area shape="circle" coords="357,138,17" onMouseOver="change('5');" id="5" />
để khởi động một chức năng được chứa trong cơ thể jQuery bình thường của mã.
Rất cám ơn sự giúp đỡ nào bạn có thể cung cấp.
Để minh họa điểm, các công việc sau:
<script type="text/javascript">
function myfunction(x) { alert(x); //Alerts 2
}
</script>
<img src="/shared_images/loading.gif" border="0" usemap="#Map">
<map name="Map"><area shape="rect" coords="171,115,516,227"
onMouseOver="myfunction('2')"></map>
Nhưng sau không
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function myfunction(x) { alert(x); //Nothing happens
}
}
</script>
<img src="/shared_images/loading.gif" border="0" usemap="#Map">
<map name="Map"><area shape="rect" coords="171,115,516,227"
onMouseOver="myfunction('2')"></map>
Đó là một câu trả lời tuyệt vời. Bạn viết về hàm của tôi là biến cục bộ. Bạn có thể giải thích cách các hàm có thể là các biến. Rất cám ơn. –
Trong JavaScript, * mọi thứ * là một biến (hoặc sử dụng nhiều ngôn ngữ truyền thống hơn, mọi thứ đều là * dữ liệu *), bao gồm các hàm.Khi bạn viết 'function f() {};' về cơ bản bạn chỉ sử dụng một bí danh cho 'var f = function() {};' Đây là những gì làm cho nó có thể sử dụng các hàm "nặc danh" trong JavaScript. Trong các ngôn ngữ khác, bạn có thể viết 'int x = 2; f (x); 'hoặc đơn giản' f (2) '. Trong JavaScript, vì các hàm là dữ liệu giống như mọi thứ khác, bạn có thể viết 'var foo = function() {}; f (foo); 'hoặc chỉ' f (function() {}); 'Hiểu đây là chìa khóa để hiểu JavaScript. – VoteyDisciple