всплывающее окно в js
Всем доброго времени суток, уважаемые форумчане!
Я прошу прощения, что отвлекаю вас из-за совсем банального вопроса, но для меня js не понятен вообще никак и проблема стоит остро. возникла задача как-то вызывать всплывающее окно при обработка данного запроса
function AddCompare(product) {
ProductsInCart.push(product);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonAdd";
//frm.page.value = "shop.comparison_short";
handleUpdateCompare(frm);
}
из того, что я прочитала: надо создать html файл с разметкой окна и css файл. до этого момента понятно. дальше все... =( как это прописать в вышеуказанном коде? в случае, если я задала какой-то совсем глупый вопрос - так и напишите. а то складывается впечатление, что я на форумах со стенами общаюсь. заранее благодарна за любой ответ.:) |
Скажем прямо мало понятно что вы делаете
в качестве хоть какого то примера приведу стандартное окно/диалог из jqueryui. Оригинал здесь http://jqueryui.com/dialog/#default нажмите на play
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Dialog - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#dialog" ).html("ВОТ ЗДЕСЬ БЫ МОГ БЫТЬ ВАШ КОНТЕНТ");
$( "#dialog" ).dialog();
});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog"></div>
</body>
</html>
|
Уважаемый DjDiablo, благодарю за то, что Вы отозвались. сейчас попробую объяснить что я пытаюсь сделать. сразу оговорюсь, что программирование для меня пока что очень темный лес, поэтому прошу прощения за неверные формулировки.
в интернет-магазине есть сравнение товаров. когда нажимаешь на "сравнить" нужно чтобы появлялось окно с текстом "товар добавлен в сравнение". в скрипте изначально не продумана эта функция. обработка запроса (добавление товара в сравнение, удаление товара из сравнения) происходит в js файле. добавление товара в сравнение - вот этот вот кусок
function AddCompare(product) {
ProductsInCart.push(product);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonAdd";
//frm.page.value = "shop.comparison_short";
handleUpdateCompare(frm);
}
как можно сюда приделать всплывающее окно. или нужен полный код, чтобы понять? |
Цитата:
|
Екатерина ваш код вырванный из контекста это всего лишь набор букв, смысл в слова закладывает программист в других частях программы, тот кусок который вы показываете без других частей программы не имеет смысла. Остаётся пальцев в небо тыкать в надежде попасть
мы можем попробывать прекрутить диалог к вашей странице вставьте в заголовок head <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.8.3.js"></script> <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> гденибудь в теледокумента вставьте <div id="dialog" title="Basic dialog">Товар добавлен в корзину..</div> и немного измените скрипт дописав одну строчку вызывающую далог
function AddCompare(product) {
ProductsInCart.push(product);вы
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonAdd";
//frm.page.value = "shop.comparison_short";
handleUpdateCompare(frm);
$( "#dialog" ).dialog();
}
давайте посмотрим что получится и насколько близко это к тому что вы хотели |
не работает. смотрите
http://test.katalliana.org/ru/intern...la-stulya.html это страница со сравнением (чтобы Вам долго не ковыряться по всему сайту). когда добавляешь товар в сравнение - под списком товаров и перед модулем "Последние поступления" (внизу странички) появляется модуль сравнения. в данном случае окошко отображается в левом верхнем углу (текст - 123456), товары в сравнение не добавляются, модуль не появляется. вот на этом сайте можете глянуть как выглядит сравнение http://testshop.katalliana.org/ru/in...la-stulya.html на всякий случай прикрепляю полный код скрипта
function removeByElement(arrayName,arrayElement) {
for(var i=0; i<arrayName.length;i++) {
if(arrayName[i]==arrayElement) arrayName.splice(i,1);
}
}
function CompareProduct(el, type_id) {
var Product_ID = el.name;
Product_ID = Product_ID.replace("compare_","");
//alert("ДО: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
if (el.checked && CompareTypeID != -1 && type_id!=CompareTypeID) {
alert("Hельзя сравнивать товары разного типа");
return false;
}
else if (el.checked && ProductsInCart.length>=MaxProductToCompare) {
alert("Нельзя сравнивать более " + MaxProductToCompare + " продуктов одновременно");
return false;
}
else if (el.checked) {
CompareTypeID = type_id;
AddCompare(Product_ID);
}
else RemoveCompare(Product_ID);
//alert("ПОСЛЕ: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
return true;
}
function AddCompare(product) {
ProductsInCart.push(product);вы
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonAdd";
//frm.page.value = "shop.comparison_short";
handleUpdateCompare(frm);
$( "#dialog" ).dialog();
}
function RemoveCompare(product) {
//alert(product);
removeByElement(ProductsInCart,product);
if (ProductsInCart.length<=0) CompareTypeID=-1;
//alert(ProductsInCart.length);
//alert(ProductsInCart[0]);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonDelete";
handleUpdateCompare(frm);
}
//для удаления из сравнения на странице сравнения
function RemoveComparePage(product) {
//alert(product);
removeByElement(ProductsInCart,product);
var page;
if (ProductsInCart.length<=0){ CompareTypeID=-1; page = "shop.browse";}
else page = "shop.compare";
//alert(ProductsInCart.length);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonDelete";
frm.page.value=page;
frm.compare_type.value = CompareTypeID;
frm.submit();
}
function ClearCompare() {
var el;
for(var i=0;i<ProductsInCart.length;i++){
//alert(ProductsInCart[i]);
el= $("compare_cart_"+ProductsInCart[i]);
if (el && el.checked) el.checked=false;
}
ProductsInCart=[];
//alert(ProductsInCart.length);
CompareTypeID=-1;
var frm= $("frmProductCompare");
frm.func.value="comparisonClear";
handleUpdateCompare(frm);
}
//Очистка на странице сравнения
function ClearComparePage() {
var el;
for(var i=0;i<ProductsInCart.length;i++){
//alert(ProductsInCart[i]);
el= $("compare_cart_"+ProductsInCart[i]);
if (el && el.checked) el.checked=false;
}
ProductsInCart=[];
//alert(ProductsInCart.length);
CompareTypeID=-1;
var frm= $("frmProductCompare");
frm.func.value="comparisonClear";
frm.page.value="shop.browse";
frm.submit();
}
/*function handleUpdateCompare( frm ) {
var callback = function(responseText) {
updateComparison()
//$("Compare_Thumb_Container").innerHTML=responseText;
ToggleCompareCheck(false);
}
var opt = {
method: "post",
data: frm,
onComplete: callback,
evalScripts: true
}
ToggleCompareCheck(true);
new Ajax(frm.action, opt).request();
}*/
//function updateComparison() {
/*
function handleUpdateCompare( frm ) {
alert(frm.func.value);
var callbackCart = function(responseText) {
carts = $$( '.vmComparisonModule' );
if( carts ) {
try {
for (var i=0; i<carts.length; i++){
carts[i].innerHTML = responseText;
color = carts[i].getStyle( 'color' );
bgcolor = carts[i].getStyle( 'background-color' );
if( bgcolor == 'transparent' ) {
// If the current element has no background color, it is transparent.
// We can't make a highlight without knowing about the real background color,
// so let's loop up to the next parent that has a BG Color
parent = carts[i].getParent();
while( parent && bgcolor == 'transparent' ) {
bgcolor = parent.getStyle( 'background-color' );
parent = parent.getParent();
}
}
var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
fxc.start( '#222', color );
fxbgc.start( '#fff68f', bgcolor );
//if( parent ) {
// setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
//}
}
} catch(e) {}
}
ToggleCompareCheck(false);
}
//option = { method: 'POST', onComplete: callbackCart }
var frm1 = { only_page:1,
page: frm.page.value,
category_id: frm.category_id.value,
product_id: frm.product_id.value,
func: "comparisonAdd",
compare_type: frm.compare_type.value,
Itemid: frm.Itemid.value,
option: frm.option.value
}
var opt = {
method: "post",
data: frm1,
//data: { only_page:1, option: "com_virtuemart", page: frm.page.value },
onComplete: callbackCart,
evalScripts: true
//?page=shop.comparison_short
}
ToggleCompareCheck(true);
new Ajax('http://joom15/index2.php?page=shop.comparison_short', opt).request();
}
*/
function handleUpdateCompare( frm ) {
var callback = function(responseText) {
updateComparison()
//$("Compare_Thumb_Container").innerHTML=responseText;
ToggleCompareCheck(false);
}
var opt = {
method: "post",
data: frm,
onComplete: callback,
evalScripts: true
}
ToggleCompareCheck(true);
new Ajax(frm.action, opt).request();
}
function updateComparison() {
var callbackCart = function(responseText) {
carts = $$( '.vmComparisonModule' );
if( carts ) {
try {
for (var i=0; i<carts.length; i++){
carts[i].innerHTML = responseText;
color = carts[i].getStyle( 'color' );
bgcolor = carts[i].getStyle( 'background-color' );
if( bgcolor == 'transparent' ) {
// If the current element has no background color, it is transparent.
// We can't make a highlight without knowing about the real background color,
// so let's loop up to the next parent that has a BG Color
parent = carts[i].getParent();
while( parent && bgcolor == 'transparent' ) {
bgcolor = parent.getStyle( 'background-color' );
parent = parent.getParent();
}
}
var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
fxc.start( '#222', color );
fxbgc.start( '#fff68f', bgcolor );
if( parent ) {
setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
}
}
} catch(e) {}
}
}
option = { method: 'POST', onComplete: callbackCart }
new Ajax('index2.php?only_page=1&page=shop.comparison_short&option=com_virtuemart', option).request();
}
function ToggleCompareCheck(disabled) {
var a = $$(".compare_checkbox");
for (i=0; i<a.length; i++) a[i].disabled=disabled;
}
function RemoveCompareCheck(product) {
var el= $("compare_cart_"+product);
if (el && el.checked) el.checked=false;
RemoveCompare(product+'');
}
function handleGoToCompare() {
if (!ProductsInCart || ProductsInCart.length<2) {
alert("You must select 2 or more products to compare!");
return;
}
var frm= $("frmProductCompare");
frm.page.value="shop.compare";
frm.compare_type.value = CompareTypeID;
frm.func.value="";
frm.submit();
}
function GoToCatalog() {
var frm= $("frmProductCompare");
if(frm.category_id.value>0)
frm.page.value="shop.browse";
else frm.page.value="";
frm.func.value="";
frm.submit();
}
|
еще не работают 2 боковых слайдера и не грузится опрос в правой колонке.
такое чувство, что там конфликт скриптов. =( |
всё верно
это конфлиет mootools и jquery рецепт http://nauca.com.ua/zametki/resolve-...uery-mootools/ соответственно и строчка инициализации будет jQuery( "#dialog" ).dialog(); |
понятно, но очень образно
вот содержимое HEAD Код:
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl ?>/modules/mod_slider/css/style.css"/>или в slider.js дело в том, что из прочитанного я мало что поняла, поэтому прошу прощения, что задаю глупый вопрос. |
вот здесь я подключил оба фреймворка и всё работает
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script src="http://www.alexilin.ru/web/animated_menu/mootools.js"></script>
<script>
jQuery(function(){
alert("всё работает");
})
</script>
я так понимаю это joomla и вас интерисует тема подклчения jquery к joonla есть альтернативнй подход к примеру использовать mootools плагин, если найдёте вменяемый. |
| Часовой пояс GMT +3, время: 11:54. |