我有一个页面,通过JS-Graph.It在流程图中连接了几个div。单击其中一个div时,我希望它1)在特殊div中生成文本2)通过附加到每个div中“block”和“channel”两个类的单击函数生成弹出窗口。当页面是静态的时,这种方法有效。
当我添加ajax以便单击按钮并添加更多div时,HTML源中只会出现两个类中的一个。 “频道”不再可见,并且点击频道类div时生成弹出窗口的功能不再起作用...
AJAX电话:
$("#trace").bind('click', $.proxy(function(event) {
var button2 = $('#combo').val();
if(button2 == 'default') {
var trans = 'Default View';
}
if(button2 == 'abc') {
var trans = 'abc';
}
$.ajax({ // ajax call starts
url: 'serverside.php', // JQuery loads serverside.php
data: 'button2=' + $('#combo').val(), // Send value of the clicked button
dataType: 'json', // Choosing a JSON datatype
success: function(data) // Variable data constains the data we get from serverside
{
JSGraphIt.delCanvas('mainCanvas');
$('.test').html('<h1>' + trans + '</h1>'); // Clear #content div
$('#mainCanvas').html(''); // Clear #content div
$('#mainCanvas').append(data);
JSGraphIt.initPageObjects();
}
});
return false; // keeps the page from not refreshing
}, this));
DIV类:(适用于index.php,但不适用于transactions.php)
// Boxes
while($row = sqlsrv_fetch_array($result))
{
echo '<div id="'.$row['id'].'_block" class="block channel" style="background:';
功能:
$(document).on('click', '.block', $.proxy(function(event) {
var input = $(event.target).attr('id');
var lines = input.split('_');
var button = lines[0];
$.ajax({
url: 'srv.php',
data: 'button=' + button,
dataType: 'json',
success: function(data)
{
$('#content').html('');
$('#content').append(data);
}
});
return false;
}, this)); // End Application Details
$(".channel").click(function () {
alert('channel');
});
答案 0 :(得分:1)
关于注册页面的事情,我不确定它是如何工作的。修复应该是将您的频道点击功能更改为与您的第一个相同,并使用.on('click')选项。
找到了一些相关的阅读材料。 https://learn.jquery.com/events/event-delegation/