2017-11-11 128 views
0

我在加載新元素在div中後顯示工具提示有問題。加載新的html內容後工具提示不起作用

我的內容加載代碼:

$ (Function() { 
     
     $ ('. Prop-next'). Click (function() { 
         $ ('.props') .html ('<img src = "/ images/loading.gif" class = "loading" />') 
         var p = parseInt ($ (this) .attr ('p')) + 3; 
         $ (this) .attr ('p', p); 
         $ .post ('/ lib/props.php', {p: p}, function (item) { 
             $ ('. Props'). Html (item); 
         }); 
     }); 
}); 
調用div中.prop,接下來點擊元素時

.props新的內容出現,而腳本不起作用:

提示代碼:

var tooltips = document.querySelectorAll ('.tooltip'); 

window.onmousemove = function (e) { 
     var x = (e.clientX - 350) + 'px', 
         y = (e.clientY + 50) + 'px'; 
     for (var i = 0; i <tooltips.length; i ++) { 
         tooltips [i] .style.top = y; 
         tooltips [i] .style.left = x; 
     } 
}; 
+0

在您的查詢選擇器和網址中存在多個空格('')字符使這個腳本無法工作 – 3Dos

+0

空格w ^在代碼在編輯器中輸入時創建。我向你保證代碼中沒有空格 – urbmake

回答

0

您的綁定鼠標移動的代碼僅在頁面加載時完成一次,並且因此導致新項目(通過AJAX下線的項目)不是h AVING是暴食補充,而不是..:

window.onmousemove = function (e) { // .. } 

嘗試這麼加dinamicly,或現場掛鉤,,這樣的事情應該工作:

$('body').on('mousemove', '.tooltip', function(e) { 
    var x = (e.clientX - 350) + 'px', 
    y = (e.clientY + 50) + 'px'; 
    for (var i = 0; i < tooltips.length; i++) { 
    tooltips[i].style.top = y; 
    tooltips[i].style.left = x; 
    } 
}); 

在這一行:$('body').on('mousemove', '.tooltip', ..你定義你的父元素(body)跟蹤鼠標移動僅在.tooltip元素上,並且會跟蹤您在頁面上顯示的新元素:)

+0

你提供的代碼不起作用。粘貼代碼:var tooltips = document.querySelectorAll('。tooltip'); (e.clientX-350)+'px'; var y =(e.clientY +('body')。('mousemove','.tooltip',function 50)+'px'; for(var i = 0; i urbmake

+0

嘗試「提醒」某些內容,以查看我的代碼是否獲得了新項目的可執行文件 –

+0

我從瀏覽器中刪除了緩存,並且代碼正常工作。謝謝:) – urbmake