我正在尝试在this fiddle中测试一些jQuery:
<div id="myDiv"></div>
<input name="Button3" type="button" value="Invoke" onclick="get()">
function get() {
var data = {};
data.foo = "bar";
data.stuff = {
nifty: "stuff"
};
$("#myDiv").text(JSON.stringify(data));
}
按“调用”时未调用get()
函数。应该发生什么是div
内容应该更新。
答案 0 :(得分:1)
你的小提琴不起作用的原因是因为设置错误。将onLoad
左侧的下拉列表中的no wrap (head)
更改为onclick
,即可生效。
但是,当您使用jQuery作为逻辑时,最佳做法是使用它来附加事件,而不是使用笨重的<input name="Button3" type="button" value="Invoke" id="button">
属性。试试这个:
$("#button").click(get);
{{1}}
答案 1 :(得分:1)
Jsfiddle在windows.load事件上评估你的函数:
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
function doSomething() {
var data = {};
data.foo = "bar";
data.stuff = {nifty: "stuff"};
("#myDiv").text(JSON.stringify(data));
}
});//]]>
</script>
但浏览器需要在标题之前或之前引用它的元素。
你必须将你的代码改为:
<div id="myDiv"></div>
<script type="text/javascript" >
function doSomething() {
var data = {};
data.foo = "bar";
data.stuff = {nifty: "stuff"};
$("#myDiv").text(JSON.stringify(data));
}
</script>
<input name="Button3" type="button" value="Invoke" onclick="doSomething()">
,但
建议使用jquery样式事件附件:
<input id="myBTN" name="Button3" type="button" value="Invoke" />
$('#myBTN').click(function(e){
// do something
});
答案 2 :(得分:0)
在这里,您可以使用更新后的jiddle
您正在使用javascript调用该函数,而您已在jQuery库中声明了该函数。
HTML
<div id="myDiv"></div>
<input name="Button3" type="button" value="Invoke">
准备好文档中的脚本
$('input[type=button]').click(function () {
get();
})
function get() {
var data = {};
data.foo = "bar";
data.stuff = {nifty: "stuff"};
$("#myDiv").text(JSON.stringify(data));
}