Javascript 。单击无法在jQuery中工作的方法

Javascript 。单击无法在jQuery中工作的方法,javascript,jquery,html,Javascript,Jquery,Html,我放置了“微笑”按钮,用于弹出新窗口并显示微笑 <textarea class="chattextarea" placeholder="Type message" name="message" id="message" ></textarea> <div class="smileybutton" id="smileybutton"></div> 但是警报不起作用。。如果我将另一个警报放在括号外,它将用于页面加载。尝试将jQuery代码放在文档内

我放置了“微笑”按钮,用于弹出新窗口并显示微笑

<textarea class="chattextarea" placeholder="Type message" name="message" id="message"  ></textarea>
<div class="smileybutton" id="smileybutton"></div>

但是警报不起作用。。如果我将另一个
警报
放在括号外,它将用于页面加载。

尝试将
jQuery
代码放在
文档内。就绪
,如下所示:

$(document).ready(
   function() {
      jQuery('#smileybutton').click(function() {
          alert("Clickeddddd");
      });
   }
);

以防你不想用美元符号

另外,请确保按照Axel和Sharky的建议包含jQuery

    <script type="text/javascript" 
            src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
    </script>

编辑(特别感谢阿克塞尔和沙基指出这一点)

经过短暂的研究后,将脚本包含在网页的
正文
部分会更好


这里是JFiddle:。

将函数代码如下所示

$(document).ready(function(){

jQuery('.smileybutton').click(function() {
        alert("Clickeddddd");
});

});

不要忘记包含jQuery库:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
在这里拉小提琴:


重要提示:以某种方式为您的
#smileybutton
提供维度,以便您可以单击一些内容。我在JSFIDLE上添加了一些关于我的示例的文本-我假设您已经应用了一些css(可能是宽度/高度和笑脸的背景图像?

您需要添加document.ready,如其他人所说。如果您添加为外部javascript文件,则需要换行

$(function(){});
现在,若你们不设置div的宽度和高度,它将是零,无论你们在哪里点击,它都不会与DOM连接。因此,您可能需要如下设置div width和height

#smileybutton{

 width:100px;
 height:100px; 
}

您可以在版本中查看。

如果您通过以下方式更改Javascript,它将起作用:

$(function(){
    $('#smileybutton').click(function() {
        alert("Clickeddddd");
    });
});

请尝试此代码,这是跟踪单击事件的另一种方法

jQuery('.smileybutton').live('click',function(){
    alert("Clickeddddd");
});

确实要在DOM呈现完成后加载脚本吗?如图所示的代码应该可以正常工作。能否向“smileybutton”div添加一些文本,以便您可以单击一些内容并查看它是否工作?工作良好只有在DOM中的smileybutton之后找到javascript,或者在DOM中任何位置的$(document).ready()函数中写入javascript时,显示的代码才会工作。如果该元素当时不存在,jQuery将尝试连接,它将无法工作。只要jQuery也正确链接;-)你的意思是
$(function(){})
函数(){}()请不要通过添加换行符来编辑我的答案。我不想因为某人不知道如何使用水平滚动条而破坏我的编码风格。谢谢。你为什么建议“在头部内执行”@Axel:在
头部
标记内包含JavaScript和CSS是一种好的做法。@Luka在加载所有js之前,减缓页面呈现速度是一种不好的做法。我同意@Sharky。但是现在它已经离题了:)仍然离题了,但是:这段代码对我有效。>>!!!!所有其他的我都试过了……但没有反应。。I dnt knw y…..您可能正在使用一个相当旧的jQuery版本,以便仍然能够使用
.live()
@vishnuprasa,如果这可以工作,而您的原始版本不起作用,那么您可能有多个
id=“smileybutton”
元素,这会混淆jQuery(请记住
id
必须是唯一的)@Sharky我也尝试过这种情况,添加了用户id wid d class..但是dat并没有像我希望的那样进行任何输出。我正在搜索。。是的,这是有原因的。下次有什么帮助吗
#smileybutton{

 width:100px;
 height:100px; 
}
$(function(){
    $('#smileybutton').click(function() {
        alert("Clickeddddd");
    });
});
jQuery('.smileybutton').live('click',function(){
    alert("Clickeddddd");
});