2012-12-13 19 views
0

我在兩種情況下使用jQuery hide()函數來隱藏元素。一個是正​​常情況,它在那裏工作。另一種情況是包含元素的部分通過AJAX加載。我已將該腳本寫入內容加載到的頁面中。但在這種情況下,該功能不起作用。我在onclick中給出了這個函數。點擊被觸發,但不會隱藏該元素。由於點擊觸發的,我覺得沒有必要使用live()AJAX調用後jQuery隱藏不起作用

我的元素代碼如下:

<input type="button" onclick="addMoreElements(this.id);" value="Add" id="406" class="button"> 

,並在addMoreElements功能我有

function addMoreElements(currentElement){ 
     $('#406').hide(); 
} 
+0

控制檯(或開發人員工具)中的任何錯誤? –

回答

0

試試這個:

HTML

<input type="button" value="Add" id="406" class="button" />​ 

jQuery的

$('#406').on('click', function() { 
    $(this).hide(); 
})​ 
0

我想你的代碼,請嘗試html元素之前定義你的JavaScript。這應該做到這一點。

樣品的編號:

<script type="text/javascript"> 

    function addMoreElements(){ 
      $("#406").hide();  
    } 
</script> 

<input type="button" onclick="addMoreElements();" value="Add" id="406" class="button" /> 

這背後的原因是,瀏覽器發現當與事件處理程序屬性的元素被設置,則該瀏覽器立即檢查函數指針,如果沒有功能被尚未定義,那麼即使在函數定義之後,事件也不會被正確處理,因此當您使用屬性事件處理程序時,請確保包含所有使用的函數都定義在頭標記處或包含在頭標記中。

或者只是使用jQuery的事件粘合劑頁面加載後,就像這樣:

$(document).ready(function(){ 
    $(".element").click(function(){ 
     //do something with the element by using $(this) 
    }); 

});

1

如果你觀察到你將this.id傳遞給你的javascript函數,並使用顯式$(「#406」)。相反,你可以試試這個

function addMoreElements(currentelement){ 
    $("#"+currentelement).hide(); 
} 

希望這有助於。

+0

你可以在這裏看到它的行動http://jsfiddle.net/2qra2/ – saraf