[英]Does jQuery Live work on Safari?
我剛剛在一小時前問過這個問題但是關於IE8,我被告知JQuery Live處理程序不支持“更改”所以我切換到“點擊”,這解決了我的問題,現在我發現Safari不起作用點擊一些奇怪的原因,任何人都知道為什么?
所以我在想,我可以同時擁有兩者嗎?
$('select.htt, select.hst').live('click', function() {
var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);
$('#fancy_div span.yellow2').html(channels + ' Channels');
});
並改變(適用於野生動物園)
$('select.htt, select.hst').live('change', function() {
var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);
$('#fancy_div span.yellow2').html(channels + ' Channels');
});
還是有更優雅的東西?
也許我可以做一個有條件的。 if ($.browser.msie
但是如何用上面這個做,上面也是$(document).ready(function()
嘗試這個:
$('select.htt, select.hst').live($.browser.msie?'click':'change', function() { ....
您似乎遇到了以下問題的組合:
change
事件不會在IE中冒泡 ,而click
事件會發生 click
事件不會在Safari中的<select>
/ <option>
元素上觸發/ buuble ,而change
事件會觸發/ buuble 我不確定你的情況最好的前進方向。
更改事件不應在任何瀏覽器中冒泡。
每當菜單添加到DOM時,我只需要讓代碼重新綁定更改處理程序,或者甚至可以在服務器腳本生成的情況下向select添加onchange屬性。
閱讀bug列表( http://bugs.jquery.com/ticket/5677 ),將以下CSS添加到元素中也是一個解決方案:
<style>
element {
cursor : pointer;
}
</style>
適用於帶有safari的iphone4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.