2012-03-01 67 views
0

我需要在函數上將它重寫爲點擊函數。具有完全相同的功能。 我不能使用的,因爲我有使用jQuery 1.3重寫jQuery on()點擊()

$('#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

好的???它工作嗎? – 2012-03-01 12:25:36

+0

你能指定問題 – 2012-03-01 12:26:33

+0

,你爲什麼需要這樣做?之前沒有工作嗎? – mindandmedia 2012-03-01 12:26:49

回答

1

這裏:

$('#citybreak_availability_calendar_widget').click(function (e) { 
    if (e.target.id === 'CB_SearchButton') { 
     // your code 
    } 
}); 

由於您使用1.3版的沒有按」 t提供開箱即用的事件委託,您必須手動實施。這個想法是將點擊處理程序綁定到包裝元素,然後 - 在處理程序內部 - 手動檢查事件目標 - 屬性e.target是否是正確的元素。

+0

我嘗試過,但我剛剛看到,代表來到v1.4,我使用1.3 – Patrik 2012-03-01 12:35:55

+0

@Patrik我明白了。我已經更新了我的答案... – 2012-03-01 12:38:44

+0

這似乎工作。謝謝Šime – Patrik 2012-03-01 12:45:01

0

我想,我終於明白了這個問題,打這個彌補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; 
    } 
}); 
+0

''CB_SearchButton''可能是一個動態元素(這可以解釋爲什麼處理程序綁定到OP代碼中的祖先)。 – 2012-03-01 12:32:24

2

你正在做使用。對()函數的事件代表團。根據jQuery documentation,這對於.click()是不可能的,因爲它是.bind()的快捷方式,而不是.delegate()。

如果因爲你的jQuery的版本比1.7年紀較大,你不能使用時,您可以使用delegate()

$('#citybreak_availability_calendar_widget').delegate('#CB_SearchButton', 'click', function() { 
    var iframe = $('#citybreakContent').find('iframe'); 
    iframe.attr('src', $(this).attr('href')); 
    $('#menu ul li a[title="Boka rum"]').click(); 
    return false; 
}); 
+0

委託()是在版本1.3之後引入的 – charlietfl 2012-03-01 13:05:53

0

我認爲這將有助於

$('#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; 
});