簡體   English   中英

jQuery插件無法在Ajax加載的頁面上運行

[英]jQuery plugin not working on ajax-loaded page

我在我的項目之一中使用jquery prettyPopin,它工作正常……問題是我希望它在使用ajax加載的php頁面上工作。 但這似乎不起作用...

簡而言之,我的問題是,jQuery插件是否可以像在父頁面上一樣在ajax加載的頁面中工作? 為了清楚起見,我的JS庫已添加到父頁面中。 加載腳本中未添加任何庫。

jQuery插件可以在ajax頁面上使用嗎? 另外,我不想在ajax頁面中包含js庫。

歡迎任何幫助...提前感謝...

任何jquery插件也將在ajax加載的頁面中工作。 但是,如果您嘗試在ajax加載頁面中調用它,則需要在ajax完成后調用插件。

是的,它確實可以工作,但是您必須在頁面加載后初始化所有插件。 使用.load()的示例:

$("#page").load("/page.php", function(response, status, xhr) {
    $('#selector-on-loaded-page').plugin();
});

您只需要照常在主頁上包含該插件即可。

可能存在jQuery沖突,您可以像這樣使用您的代碼

var $jq = jQuery.NoConflict();
$jq("#page").load("/page.php", function(response, status, xhr) {
    $jq('#selector-on-loaded-page').plugin();
});

它應該工作,因為包含的js可以在加載的DOM和包含的js上使用。

但是,這取決於插件的工作方式以及您如何調用它。 例如,它可能不會得到,如果動態地應用它工作onload或者如果你試圖把它包你里面$(document).ready()的主代碼。

[編輯]根據插件文檔

例如,不要忘記再次應用該插件,您必須輸入:

$("a[rel^='prettyPopin']").prettyPopin();

.load()語句的回調中。

因此,假設您正在以這種方式使用插件“ foo”:

$(".something").foo();

在ajax請求的末尾(一旦您從php獲取數據並創建新元素),重新編寫同一行$(“。something”)。foo();

另一種方法是弄清楚如何以使用插件的方式實時集成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM