Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在()上重写jQuery以单击()_Javascript_Jquery - Fatal编程技术网

Javascript 在()上重写jQuery以单击()

Javascript 在()上重写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'));

我需要将这个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'));
    $('#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之后引入的