2013-03-28 40 views
-4

我試圖將click事件添加到我的項目中的div ID,但它是拋出一個錯誤。我不知道爲什麼。有人可以看看代碼嗎?jQuery的.live函數拋出錯誤「對象[對象對象]沒有方法'生活'」

HTML:

<div id="container"> 
    <div id="header1"> 
     <input type="button" value="Search and Highlight!!" style="position: absolute; right: 100px; top: 10px;" /> 
    </div> 
... 

的jQuery:

var searchAttachPoint = document.querySelector('.header1'); 
    $('#header1').live("click", function() { 
     myNameSpace.searchPrompt("Key the text and press Ok", false) 
    }); // The error is thrown in this line 
    var attachpoint = document.querySelector('.buttonAttachPoint'); 
    $(document).on('load', myNameSpace.LoadAllBooks("ajax/metadata.json", this.attachpoint)); 
+8

您使用的是什麼版本的jQuery最近的靜態父被取代? 'live'在Jquery 1.9中被移除,http://api.jquery.com/live/ – Liam

+0

那些用於querySelector的東西是什麼? – Bergi

+0

@Bergi我以前從來沒有見過這些......在google之後,似乎是jQuery/sizzle用來選擇元素的'本地'JS方法:https://developer.mozilla.org/en-US /docs/DOM/Document.querySelector – jammypeach

回答

1

.live()折舊,並且可以與.on()

所以代替,

變化:$('#header1').live('click',function(){...})

到:$('body').on('click','#header1',function(){...})

body應通過#header1

+2

你甚至可以使用'$(「#container」)'而不是'$(「body」)'來幫助縮小目標。這隻取決於'#容器'是否是靜態的 – Ian

+1

理想情況下,#header1 – defau1t

+0

的父母很好,我會將其添加到我的答案中 –

相關問題