选择触发事件在 jQuery 中不起作用
我有以下功能:
jQuery("el").click(function() {
var index = jQuery(this).index(),
select = jQuery('select.SelectClass option').get(index + 1),
$select = jQuery(select);
$select.attr('selected', 'selected');
jQuery(jQuery('select.selectClass').get(0)).trigger('change');
});
我试图触发选择上的更改事件,但似乎这不起作用。另一件需要注意的事情是,该页面上还使用了影响这些选择的原型代码。页面上还有受页面上的更改事件影响的其他元素。
这段代码有什么问题吗?或者有人有触发此事件的建议吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它不会出现任何问题,但执行状态也取决于 html。也许你也应该发布一些 html 示例。
至于js,还可以改进:
使用
$(selector).eq(i)
方法而不是$($(selector).get(i))
。这是应该在第一个“select.selectClass”项上触发更改事件的函数:
现在它取决于您何时调用它。您可以将其绑定为在单击元素时触发:
jQuery(element) .click(triggerChange);
。it doesn't present any problem, but the execution status depends on the html as well. Maby you should post some html sample as well.
As for the js, it can be improved :
use the
$(selector).eq(i)
method instead of$($(selector).get(i))
.this is the function that should trigger the change event on the first 'select.selectClass' item:
now it depends on you when you call it.You can bind it to be triggered when you click an element :
jQuery(element).click(triggerChange);
.我认为通过将更改事件绑定到一个通用函数,然后在您想要的任何上下文中正常调用该函数,可以轻松解决您的问题。
I think your issue is easily solved by binding the change event to a common function and then just call that function normally in whatever context you want.
这个 jQuery("el").click(function() { 不会触发任何事件。如果您有一个元素设置为名为 el 的变量,则需要使用 jQuery(el) .click(function(){。如果您的目的是为选择选项更改时设置事件处理程序,请使用:
jQuery("#yourSelectsIDHere").change(function(){ /* do您的事件内容在这里 */});
要触发更改事件,请使用jQuery("#yourSelectsIDHere").trigger("change");
This
jQuery("el").click(function() {
won't trigger any events. If you have an element set to a variable named el you need to usejQuery(el).click(function(){
. If your intent is to set up an event handler for when the select option changes use:jQuery("#yourSelectsIDHere").change(function(){ /* do your event stuff here */});
. To trigger the change event usejQuery("#yourSelectsIDHere").trigger("change");