我使用jQuery hide()
函数在两种情况下隐藏元素。一个是正常情况,它正在那里工作。另一种情况是包含该元素的部分是通过AJAX加载的。我已在加载内容的页面中编写脚本。但在这种情况下,该功能不起作用。我在onclick
中给出了这个功能。点击被触发,但它没有隐藏元素。触发点击后,我认为无需使用live()
我的元素代码如下:
<input type="button" onclick="addMoreElements(this.id);" value="Add" id="406" class="button">
在addMoreElements函数中我有
function addMoreElements(currentElement){
$('#406').hide();
}
答案 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)
});
});