Javascript 阻止jQuerys.change()在页面加载时运行
我有一个包含多个选择列表的页面,当使用jQuery的.change()函数更改其中一个选择列表时,我会更改选择列表旁边一个范围中的文本。加载页面时,每个跨距中已经有一些文本(每个跨距的文本不同)。问题是,当页面加载.change()函数时,它会在所有的选择列表中循环,从而更改每个范围中的文本。在用户选择列表中的其他项之前,我不希望范围中的文本发生更改。我不能只是检查span中是否有文本,因为如果用户确实更改了所选项目,则无论是否有文本,我只是不想在页面加载时替换文本。那么,如何让.change()函数在加载页面时停止激发呢?守则: JS/jQueryJavascript 阻止jQuerys.change()在页面加载时运行,javascript,jquery,Javascript,Jquery,我有一个包含多个选择列表的页面,当使用jQuery的.change()函数更改其中一个选择列表时,我会更改选择列表旁边一个范围中的文本。加载页面时,每个跨距中已经有一些文本(每个跨距的文本不同)。问题是,当页面加载.change()函数时,它会在所有的选择列表中循环,从而更改每个范围中的文本。在用户选择列表中的其他项之前,我不希望范围中的文本发生更改。我不能只是检查span中是否有文本,因为如果用户确实更改了所选项目,则无论是否有文本,我只是不想在页面加载时替换文本。那么,如何让.change(
$(document).ready(function() {
$("select").change(function () {
var txt = $(this).val();
$(this).next('span').text(txt);
}).trigger('change');
});
HTML(重复多次)
狗
猫
鸟
蛇
在用户更改选定项之前不应替换的文本
谢谢你的帮助 您只需删除此呼叫:
.trigger('change')
这是调用刚刚绑定的
$(“select”).change(function(){…})
处理程序的内容。默认行为是等待change
事件发生…or(无参数)将模拟change
事件,使该处理程序开始工作。您只需删除此调用:
.trigger('change')
这是调用刚刚绑定的$(“select”).change(function(){…})
处理程序的内容。默认行为是等待change
事件发生…or(无参数)将模拟change
事件,使该处理程序开始工作。触发“change”是因为代码告诉它!调用.trigger(“change”)
时说,“请运行'change'事件处理程序”。所以,把它拿出来
现在,问题是,这样编写代码的原因可能是为了确保
元素的设置真正反映用户手动进行相同更改时的行为。例如,有时在某些表单中,除非将
设置为某个选项,否则应禁用部分输入。通过在页面加载时触发“change”事件,代码可以确保这些规则有效。如果你只是扣动扳机,事情可能会不正常,这就是我要说的。该处理程序看起来非常简单,因此可能问题在于此代码是从其他地方剪切和粘贴的。触发“更改”是因为您的代码告诉它!调用.trigger(“change”)
时说,“请运行'change'事件处理程序”。所以,把它拿出来
现在,问题是,这样编写代码的原因可能是为了确保
元素的设置真正反映用户手动进行相同更改时的行为。例如,有时在某些表单中,除非将
设置为某个选项,否则应禁用部分输入。通过在页面加载时触发“change”事件,代码可以确保这些规则有效。如果你只是扣动扳机,事情可能会不正常,这就是我要说的。该处理程序看起来非常简单,所以可能问题在于该代码是从其他地方剪切和粘贴的。这让我看起来很愚蠢,我在最初无法正常工作时添加了它,但没有删除它。谢谢你的解释!好吧,这让我看起来很愚蠢,我添加了它,当我有问题,使它最初的工作,并没有删除它。谢谢你的解释!