jQuery .change()不会触发select - 例如来自api.jquery.com

时间:2011-12-12 08:27:29

标签: javascript jquery

我从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.');
});

4 个答案:

答案 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/

<强>更新

两个版本都有效:http://jsfiddle.net/ayezutov/7pEP4/1/