我从api.jquery.com复制了这个例子
$('.target').change(function() {
alert('Handler for .change() called.');
});
我也尝试过:
$('#target').change(function() {
alert('Handler for .change() called.');
});
我将它复制到我的.js文件中,该文件包含在我的html中。我有另一个jQuery函数(开始$(window).load(function(){...“
另一项功能正在运作。但上面这个简单的功能不是。
表格如下:
<form>
<select id="target" class="target">
<option name="pp" value="6">6</option>
<option name="pp" value="12">12</option>
</select>
</form>
我想使用id,但我添加了类只是为了测试。但两者都不起作用。
为什么这个简单的功能不起作用?我是否还需要执行其他操作才能将更改事件连接到函数?我是jQuery的新手,但我知道在javascript中我必须让表单的onchange事件调用函数才能发生某些事情。
编辑:好的,这是包含的.js文件中的所有内容。如您所见,只有一个功能。它干扰了吗? 另外,我在页面上只有一个表单,您可以在上面看到。我将改变每页显示的结果数量(6或12)。
$(window).load(function() {
$("img.gall_img").each(function() { // iterate through all img of class gall_img
var imgWidth = $(this).width(); // "$(this)" to access jQuery width() func
var divWidth = $(this).closest('div').width();
//alert(imgWidth + " and " + divWidth); // for debugging
if(imgWidth > divWidth) {
var position = Math.round(-1 * ((imgWidth/2) - (divWidth/2))); //
position = position + "px"; // make position format "123px".
$(this).css("left", position); // "$(this)" to access jQuery css() func
}
});
});
$("#target").change(function() {
alert('Handler for .change() called.');
});
答案 0 :(得分:2)
将代码放在<{1}}函数中,如下所示:
$(window).load
$(window).load(function () {
//whatever code is already here
$('.target').change(function() {
alert('Handler for .change() called.');
});
}); //end of $(window).load function
告诉浏览器仅在加载整个页面后运行该代码包括图像。传统上使用jQuery,你会看到$(window).load(function ()
...告诉浏览器在页面加载之后不处理该代码(不包括图像)
如果您不需要等待加载图片来运行jQuery,那么您可以将$(document).ready(function() {
替换为$(window).load(function () {
干杯!
答案 1 :(得分:1)
尝试将.change(..)
置于.ready(..)
函数中,如下所示:
$(document).ready(function () {
$('#target').change(function() {
alert('Handler for .change() called.');
});
});
答案 2 :(得分:0)
我在jsFiddle =&gt;中尝试过这段代码http://jsfiddle.net/GjScg/
这段代码应该有效,是否有其他任何javascript限制在Change事件上?也许还有一些其他代码会导致错误?
答案 3 :(得分:0)
你确定,它不起作用? 这是jsfiddle的工作链接:http://jsfiddle.net/ayezutov/7pEP4/
<强>更新强>