2017-09-25 33 views
0

我是新來的JavaScript,我試圖儘可能多的調試,但我仍然無法確定爲什麼我不能獲得警報「事件1」,以顯示當我點擊文字:不能得到最基本的點擊事件綁定工作

<!DOCTYPE html> 
<html> 

    <head> 
    <title>Title</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    </head> 
    <script type="text/javascript" language="javascript"> 


    $("#id").bind("click", function() { 
     alert("Event 1"); 
    }); 

    </script> 

    <body> 
    <div class="foo" id="id">Click</div> 
    </body> 
</html> 
+0

'$(「#id」)。click(function(e){...}' – nilobarp

+0

@nilobarp無關 – hobbs

回答

2

的問題是,你需要確保你只有一次在頁面加載綁定到元素,該元素是因此訪問。這可以通過將現有的jQuery包裝在$(document).ready()中完成,如下面的工作示例所示。

另外,還要注意.bind()已被棄用的jQuery 3.0,你應該使用.on()代替。請注意,您.on目標元素必須在您撥打電話給他們的時間存在:

事件處理程序只能綁定到當前選擇的元素;他們必須在當時存在您的代碼調用。對()

如果目標元素是在頁面加載DOM不可見,你可以使用event delegation綁定到一個元素可見頁面加載,然後委託該功能的目標。

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Title</title> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
</head> 
 
<script type="text/javascript" language="javascript"> 
 
    $(document).ready(function() { 
 
    $("#id").on("click", function() { 
 
     alert("Event 1"); 
 
    }); 
 
    }); 
 
</script> 
 

 
<body> 
 
    <div class="foo" id="id">Click</div> 
 
</body> 
 

 
</html>

希望這有助於! :)

+0

從jQuery 3.0開始,.bind()已被棄用。 .on()方法將事件處理程序附加到文檔,因爲jQuery 1.7 – nilobarp

+0

是的;我剛剛更新了我的回答,提到這一點,並推薦使用'.on()'而不是:) –