Javascript 在()上重写jQuery以单击()
我需要将这个on函数重写为click函数。具有完全相同的功能。 我不能使用,因为我必须使用jQuery 1.3Javascript 在()上重写jQuery以单击(),javascript,jquery,Javascript,Jquery,我需要将这个on函数重写为click函数。具有完全相同的功能。 我不能使用,因为我必须使用jQuery 1.3 $('#citybreak_availability_calendar_widget').on('click', '#CB_SearchButton', function() { var iframe = $('#citybreakContent').find('iframe'); iframe.attr('src', $(this).attr('href'));
$('#citybreak_availability_calendar_widget').on('click', '#CB_SearchButton', function() {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $(this).attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
});
这就是我得到的:
$('#citybreak_availability_calendar_widget #CB_SearchButton').click(function() {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $('#CB_SearchButton').attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
});
在这里:
由于您使用的版本1.3不提供开箱即用的事件委派,因此必须手动实现它。其思想是将click处理程序绑定到包装器元素,然后在处理程序内部手动检查事件目标(即e.target
属性)是否为正确的元素。此处:
由于您使用的版本1.3不提供开箱即用的事件委派,因此必须手动实现它。其思想是将click处理程序绑定到包装器元素,然后在处理程序内部手动检查事件目标(即
e.target
属性)是否是正确的元素。我想我终于理解了这个问题,请点击此按钮进行删除:
$('body').click(function(e) {
if (e.target.id === 'CB_SearchButton') {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $('#CB_SearchButton').attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
}
});
我想我终于明白了这个问题,点击这里进行delagation:
$('body').click(function(e) {
if (e.target.id === 'CB_SearchButton') {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $('#CB_SearchButton').attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
}
});
您正在使用.on()函数进行事件委派。根据,这在.click()中是不可能的,因为它是.bind()而不是.delegate()的快捷方式 如果由于jQuery版本早于1.7而无法在上使用,则可以使用:
您正在使用.on()函数进行事件委派。根据,这在.click()中是不可能的,因为它是.bind()而不是.delegate()的快捷方式 如果由于jQuery版本早于1.7而无法在上使用,则可以使用:
我想这会有帮助
$('#CB_SearchButton').click(function() {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $('#citybreak_availability_calendar_widget').attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
});
我想这会有帮助
$('#CB_SearchButton').click(function() {
var iframe = $('#citybreakContent').find('iframe');
iframe.attr('src', $('#citybreak_availability_calendar_widget').attr('href'));
$('#menu ul li a[title="Boka rum"]').click();
return false;
});
在jQuery的核心中有live()、delegate()和on()等委托方法之前,livequery插件被大量使用。它在jQuery主站点上有很好的文档记录。您可能会发现它很有用在jQuery的核心中有live()、delegate()和on()等委托方法之前,livequery插件被大量使用。它在jQuery主站点上有很好的文档记录。您可能会发现它很有用,为什么需要这样做?以前没用过吗?那是不可能的。在您当前的表单中,
.on()
代码提供了事件委派,这是使用无法实现的。单击()
(至少不是现成的)。您可以使用.delegate()
(我假设您试图避免使用.on()
,因为您由于某种原因无法使用最新版本的jQuery)。@ŠimeVidas yes。我正在使用jQuery1.3(忘记写了),我无法升级。我怎样才能用委托重写这个?你为什么要这样做?以前没用过吗?那是不可能的。在您当前的表单中,.on()
代码提供了事件委派,这是使用无法实现的。单击()
(至少不是现成的)。您可以使用.delegate()
(我假设您试图避免使用.on()
,因为您由于某种原因无法使用最新版本的jQuery)。@ŠimeVidas yes。我正在使用jQuery1.3(忘记写了),我无法升级。如何使用委托重写此内容?“#CB_SearchButton”
可能是一个动态元素(这可以解释为什么处理程序绑定到OP代码中的祖先)。“#CB_SearchButton”
可能是一个动态元素(这可以解释为什么处理程序绑定到OP代码中的祖先).我试过了,但我刚刚看到该代表出现在v1.4中,我使用的是1。3@Patrik我懂了。我已经更新了我的答案…这似乎有效。谢谢ime@Patrik哦,我忘了提一下:你必须在代码中使用e.target
而不是this
。this
值引用了小部件,e.target
引用了按钮。我试过了,但我刚刚看到代理出现在v1.4中,我使用的是1。3@Patrik我懂了。我已经更新了我的答案…这似乎有效。谢谢ime@Patrik哦,我忘了提一下:你必须在代码中使用e.target
而不是this
。this
值引用小部件,e.target
引用按钮。委派()是在版本1之后引入的。3delegate()是在版本1.3之后引入的