为什么这个代码在我使用按钮时不起作用?

时间:2018-06-03 07:26:42

标签: jquery

使用按钮时它不起作用。

JQuery的:

GET https://www.googleapis.com/drive/v3/files/fileId

HTML:

function changeSize() {
    $(this).animate({fontSize: "+=3px"});
}
$(document).ready(function(){
    $("#test").on("click", "p", changeSize);
});

2 个答案:

答案 0 :(得分:0)

您要在onclick内的所有p元素上添加#test个事件,因此将p置于按钮内然后它将开始工作

<button id="test"> <p>Hello</p> Click me</button>

或者只是将另一个div作为buttonp的父级,并将onclick放在p上,如下所示

function changeSize() {
    console.log("Clicked");
}
$(document).ready(function(){
    $("#div").on("click", "p", changeSize);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div">
<button id="test">Click me</button>
<p>Hello</p>
</div>

如果您不想关心父母,可以在onclick上添加p

 $(document).ready(function(){
        $("p").on("click", changeSize);
 });

答案 1 :(得分:0)

您已定义选择器以选择标记&lt; p>在内部按钮[&#39; id = test&#39;],然后你把你的标签&lt; p>在按钮外面! 实际上,这不是一个好主意! &LT; p>是一个段落标签,按钮不能成为段落的好父母!

您可以使用此示例:

createPost(){
    const data={
      author : this.auth.authState.displayName || this.auth.authState.email,
      authorId : this.auth.currentUserId,
      content:this.content,
      image: this.image,  
      published: new Date(),
      title:this.title
    };
    this.postService.create(data)

  uploadImage(event){
        const file= event.target.files[0]; 
    const path= `posts/${file.name}`
    const task=this.storage.upload(path,file)
    const fileRef = this.storage.ref(path);

       if(file.type.split('/')[0]!=='image'){
         return alert('Only Image files')
       }else{
         this.uploadPercent= task.percentageChanges()
         task.snapshotChanges().pipe(
          finalize(() => this.downloadURL = fileRef.getDownloadURL() )
         ).subscribe()
       }
       }

}

此选择器只会选择#test一次,之后只要点击该按钮,您的代码就会处理该按钮。

或者:

<p>Hello <button id='test'>Click me</button></p>

$(document).ready(function(){
    $("#test").on("click", changeSize);
});

如果目标是段落标记,这将检测您对p#test的所有点击并运行您的代码,这根本不是一个好主意。这些类型的选择器会降低代码性能。通常,您可以使用此选择器选择在该页面完全加载(DOM已创建并呈现)后使用javascript附加到DOM的元素。在这种情况下,您只需使用上面的第一个选择器,您的代码就可以正常工作。