2014-12-06 23 views
-1

我用json加載了很多html代碼,但是jQuery不會爲所定義的函數初始化元素。 jQuery .on在這裏不起作用。jQuery通過json插入後不知道html元素

$('body').on('click', '.cancel', function() { 
    openCloseModalwin; 
}); 

爲什麼這不起作用?

+0

首先,您的意思是否'openCloseModalwin()'? – 2014-12-06 19:56:02

+0

此代碼與body元素的開始標記相關的位置在哪裏? – MiiinimalLogic 2014-12-06 19:56:12

+0

將代碼放入jsfiddle或codepen – Todd 2014-12-06 19:56:13

回答

0

您必須在之後添加單擊處理程序將元素加載到DOM中。

例如,這將工作:

$(body).html("<button id='myButton'> Click Me </button>"); 

$("#myButton").click(function(){ 
    alert("Clicked!"); 
}); 

這將工作:

$("#myButton").click(function(){ 
    alert("Clicked!"); 
}); 

$(body).html("<button id='myButton'> Click Me </button>"); 

的原因是,jQuery的不能找到添加的處理程序,如果它不」的元素t存在於DOM中。

0

後JSON負載代碼:

$(document).ready(function() { 
    $('body').on('click', '.cancel', function() { 
     openCloseModalwin; 
    }); 
});