AJAX调用后,jQuery隐藏不起作用

时间:2012-12-13 07:58:00

标签: jquery

我使用jQuery hide()函数在两种情况下隐藏元素。一个是正​​常情况,它正在那里工作。另一种情况是包含该元素的部分是通过AJAX加载的。我已在加载内容的页面中编写脚本。但在这种情况下,该功能不起作用。我在onclick中给出了这个功能。点击被触发,但它没有隐藏元素。触发点击后,我认为无需使用live()

我的元素代码如下:

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

在addMoreElements函数中我有

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

3 个答案:

答案 0 :(得分:1)

如果你发现你将this.id传递给你的javascript函数并使用显式$(“#406”)。相反,你可以尝试这个

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

希望这会有所帮助。

答案 1 :(得分:0)

试试这个:

HTML

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

的jQuery

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

答案 2 :(得分:0)

我尝试了你的代码,请尝试在html元素之前定义你的javascript。应该这样做。

示例代码:

 <script type="text/javascript">

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

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

这背后的原因是,当浏览器看到设置了具有事件处理程序属性的元素时,浏览器会立即检查函数指针,如果还没有定义函数,那么即使在定义了函数之后,事件也不会是处理正确,因此当您使用属性事件处理程序时,请确保包含所有已使用的函数,这些函数在head标记处定义或包含在head标记中。

或者只是在页面加载后使用jquery的事件绑定器,如下所示:

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

});